Skip to main content

21 posts tagged with "Improved"

Enhancements and updates to existing features

View All Tags

trackunit/react-widgets 2.13.4 - Interactive WidgetKPI

The WidgetKPI component now supports an onClick prop, making KPI cards interactive with a hover effect, chevron indicator, and keyboard accessibility.

Breaking Change

WidgetContent padding has changed for KPI widgets using the onClick prop. If your widget previously used padding="responsive", you should update it to padding="none" — the WidgetKPI component now handles its own padding internally.

Iris Apps now use Vite instead of Rspack

Iris Apps have been migrated from Rspack to Vite as the build system. Vite provides near-instant dev server startup, fast HMR using native ES modules, and optimized production builds.

Affected packages:

  • @trackunit/iris-app-sdk-vite — new package, replaces @trackunit/iris-app-sdk-rspack for build and serve
  • @trackunit/iris-app-sdk-rspack — deprecated for Iris Apps, will be removed in a future version

Old executors removed:

  • @trackunit/iris-app:build — removed (was already deprecated)
  • @trackunit/iris-app:serve — removed (was already deprecated)

Step 1: Update all Trackunit dependencies

Make sure you are on the latest Trackunit dependencies:

npx npm-check-updates "/@trackunit/" -u

Then install:

npm install
npm install @trackunit/iris-app-sdk-vite -D

Step 2: Update project.json

Replace the Rspack executors with the Vite equivalents.

Before:

{
"targets": {
"build": {
"executor": "@trackunit/iris-app-sdk-rspack:build",
"options": {
"rspackConfig": "apps/{app-name}/rspack.config.ts",
"outputPath": "dist/apps/{app-name}"
},
"outputs": ["{options.outputPath}"]
},
"serve": {
"executor": "@trackunit/iris-app-sdk-rspack:serve",
"options": {
"rspackConfig": "apps/{app-name}/rspack.config.ts"
}
}
}
}

After:

{
"targets": {
"build": {
"executor": "@trackunit/iris-app-sdk-vite:build",
"options": {
"outputPath": "dist/apps/{app-name}"
},
"outputs": ["{options.outputPath}"]
},
"serve": {
"executor": "@trackunit/iris-app-sdk-vite:serve",
"options": {}
}
}
}

Key changes:

  • Executor changed from @trackunit/iris-app-sdk-rspack to @trackunit/iris-app-sdk-vite
  • The rspackConfig option is removed — Vite works with zero config by default
  • Optionally, you can add a viteConfig option if you need custom configuration (see Step 3)

Step 3: Replace rspack.config.ts with vite.config.ts

Delete your existing rspack.config.ts file.

If you had no customizations in your rspack config (i.e., it just returned the default configuration), you can skip creating a vite config entirely — it works out of the box.

If you need custom configuration, create a vite.config.ts in your app root:

import { defineConfig, UserConfig } from "vite";

export default defineConfig(async (configuration: UserConfig): Promise<UserConfig> => {
return configuration;
});

You can extend the default configuration by spreading and adding your overrides:

import { defineConfig, UserConfig } from "vite";

export default defineConfig(async (configuration: UserConfig): Promise<UserConfig> => {
return {
...configuration,
define: {
...configuration.define,
__MY_CUSTOM_FLAG__: JSON.stringify(true),
},
};
});

Then reference it in your project.json:

{
"serve": {
"executor": "@trackunit/iris-app-sdk-vite:serve",
"options": {
"viteConfig": "apps/{app-name}/vite.config.ts"
}
},
"build": {
"executor": "@trackunit/iris-app-sdk-vite:build",
"options": {
"viteConfig": "apps/{app-name}/vite.config.ts",
"outputPath": "dist/apps/{app-name}"
}
}
}

Step 4: Remove tailwind.config.js (if present)

If your app has a tailwind.config.js file, delete it. Tailwind CSS v4 is now configured automatically by the Vite plugin using PostCSS — no manual Tailwind config is needed.

See the Tailwind 4 upgrade changelog for more details on the Tailwind migration.

Step 5: Clean up old dependencies

Remove unwanted packages from your NX's package.json (if present):

  • @trackunit/iris-app-webpack-plugin
  • @trackunit/iris-app-sdk-rspack
  • @rspack/core
  • @rspack/dev-server,
  • copy-webpack-plugin
  • css-loader
  • esbuild-loader
  • style-loader
  • postcss
  • postcss-loader
  • json-loader
  • webpack
  • webpack-cli
  • webpack-dev-server

Then install to update your lockfile:

npm install

Step 6: Verify

Run serve and build to verify everything works:

# Start dev server
npx nx run {app-name}:serve

# Production build
npx nx run {app-name}:build

The dev server will start on a port in the range 22220–22229 and print a link to open your app:

✨ Iris App is now started, check it out ✨
https://new.manager.trackunit.com/goto/iris-app-dev

New executor options

Serve options

OptionTypeDefaultDescription
viteConfigstringPath to custom Vite config file (optional)
portnumberauto (22220-22229)Dev server port
hoststringlocalhostDev server host
skipTypeCheckingbooleanfalseSkip TypeScript type checking during dev

Build options

OptionTypeDefaultDescription
viteConfigstringPath to custom Vite config file (optional)
outputPathstringOutput directory (required)
skipTypeCheckingbooleanfalseSkip TypeScript type checking during build

Bundle analysis

To analyze your bundle size, set the BUNDLE_ANALYSE environment variable:

BUNDLE_ANALYSE=true npx nx run {app-name}:build

This generates a stats.html file in the output directory using rollup-plugin-visualizer.

Troubleshooting

CORS errors during development

The Vite dev server automatically sets CORS headers for Trackunit domains. If you see CORS errors:

  1. Verify the Vite server is running
  2. Check that "Use Local Apps" is enabled in developer settings
  3. Ensure no proxy is interfering with requests

Tailwind upgraded from v3 to v4

In this version we upgraded the foundation for our tailwind to use tailwind 4.1.18 instead of 3.x.

Effected packages:

  • @trackunit/css-core - contains the generated css file to use
  • @trackunit/css-tailwind - deprecated, just remove it from your package.json
  • @trackunit/css-tailwind-custom-properties-plugin - deprecated, just remove it from your package.json

Also, many of the React libraries have changed, so make sure to update all Trackunit dependencies.

Use this command to make sure you are updated with all latest Trackunit dependencies

npx npm-check-updates "/@trackunit/" -u

Now you need to install the latest tailwind dependencies

npm install @tailwind/postcss@4.1.18 --save-dev
npm install tailwindcss@4.1.18 --save-dev

After this the 'serve' command will use the correct tailwindcss/postcss and all Trackunit dependencies are updated.

For more information on how it might effect your own tailwind classes in your codebase - check this Migration guide

trackunit/iris-app v1.7.96 - Node upgraded to v24

In this version of the App SDK, we have upgraded Node to the current LTS version 24.11.1. Make sure to upgrade your workspace to at least that version.

If using volta, you can install the latest LTS version of Node by running:

volta install node@lts

or by adding the following to your root package.json

package.json
"volta": {
"node": "24.11.1"
}

Otherwise, you can download the latest LTS version of Node from the Node.js website.

trackunit/filters-filter-bar v1.7.90 - Filter URL Synchronization

Filter URL Synchronization

Filter states are now automatically synchronized with URL parameters, allowing users to bookmark or share filtered views. When filters are applied, the URL updates to reflect the current filter state, and the filters are restored when navigating back to that URL.

Breaking Change

TanStack Router is now required for Iris app extensions using the filter bar.

Your app entry point must be wrapped with TanStack Router's RouterProvider. See the iris-app-with-router-example for a complete implementation example showing how to set up the router in your Iris app extension.

Set custom fields values using definition key

We enhanced the endpoint for setting custom field values to support definition keys as an alternative to definition UUIDs. This improvement eliminates the need to hardcode UUIDs in your integration code, making your implementations more maintainable and readable.

➕ POST: /api/custom-fields/v1/set-values/

Set custom field values

trackunit/iris-app v1.3.36 - Node upgraded to v22.14.0

In this version of the App SDK, we have upgraded Node to the current LTS version 22.14.0. Make sure to upgrade your workspace to at least Node v22.14.0.

If using volta, you can install the latest LTS version of Node by running:

volta install node@lts

Otherwise, you can download the latest LTS version of Node from the Node.js website.