Files
bambuddy/frontend
maziggy c9ce6dac3c fix(backup): disclose the K-profile exception before the restore, not after (#2656)
With overwrite off, the confirmation said "Missing entries are added; existing
    entries stay as they are." For archives, spools and settings that is true --
    _apply threads the flag into all three. _restore_kprofiles takes no overwrite
    parameter at all, and deliberately: writing a slot is always an overwrite on the
    printer, so it resolves the live cali_idx and publishes extrusion_cali_set
    either way, replacing whatever calibration that slot currently holds.

    The behaviour is right and the backend does say so, but it says so as a
    kprofilesAlwaysOverwrite note -- which only reaches the user in the result panel,
    after an MQTT send that cannot be taken back. The one screen that explains
    overwrite-off stated the opposite. So the fix is on the frontend, where the
    mismatch is.

    One new leaf, kprofilesOverwriteCaveat, in all 13 locales, rendered in two
    places: appended to the overwrite-off confirmation when kprofiles is among the
    selected categories, and beside the K-profiles row itself as soon as it is
    ticked, which is the same screen as the toggle whose promise it qualifies.
    Neither appears with overwrite on, where nothing is promising otherwise.

    Tests: 2 that fail pre-fix (the caveat beside the row, and inside the
    confirmation the user clicks through) and 2 controls (a spools-only restore keeps
    the plain message; overwrite-on keeps the strong one and adds nothing). Frontend
    suite 2601 -> 2605 tests across 195 files.
2026-08-15 14:15:27 +02:00
..
…
…
…

React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

React Compiler

The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.

Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:

export default defineConfig([
  globalIgnores(['dist']),
  {
    files: ['**/*.{ts,tsx}'],
    extends: [
      // Other configs...

      // Remove tseslint.configs.recommended and replace with this
      tseslint.configs.recommendedTypeChecked,
      // Alternatively, use this for stricter rules
      tseslint.configs.strictTypeChecked,
      // Optionally, add this for stylistic rules
      tseslint.configs.stylisticTypeChecked,

      // Other configs...
    ],
    languageOptions: {
      parserOptions: {
        project: ['./tsconfig.node.json', './tsconfig.app.json'],
        tsconfigRootDir: import.meta.dirname,
      },
      // other options...
    },
  },
])

You can also install eslint-plugin-react-x and eslint-plugin-react-dom for React-specific lint rules:

// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'

export default defineConfig([
  globalIgnores(['dist']),
  {
    files: ['**/*.{ts,tsx}'],
    extends: [
      // Other configs...
      // Enable lint rules for React
      reactX.configs['recommended-typescript'],
      // Enable lint rules for React DOM
      reactDom.configs.recommended,
    ],
    languageOptions: {
      parserOptions: {
        project: ['./tsconfig.node.json', './tsconfig.app.json'],
        tsconfigRootDir: import.meta.dirname,
      },
      // other options...
    },
  },
])