* Rename GlobalStateContext to SettingsAuthContext * Naive initial impl of settings persistence to file system * Update app identifier in tauri config * Add "show in folder" tauri command * Load from and save to file system in Tauri app * Add documents drive to tauri permission scope * Add recursive prop to default dir selection dialog * Add success toast to web restore defaults action * Add a way to validate read-in settings * Update imports to use separate settings lib file * Validate localStorage-loaded settings, combine error message * Add a e2e test for validation * Clean up state state bugs * Reverse validation looping so new users don't error * update settingsMachine typegen to remove conflicts * Fmt * Fix TS errors * Fix import paths, etc post-merge * Make default length units `mm` and 'metric' * Rename to SettingsAuth* * cargo fmt * Revert Tauri config identifier change * Update clientSideInfra's baseUnits from settings * Break apart CommandBar and CommandBarProvider * Bugfix: don't validate defaultValue when it's not configured * Allow some TauriFS functions to no-op from browser * Sidestep circular deps by loading context and kclManager only from React-land * Update broken import paths * Separate loaders from Router, load settings on every route * Break apart settings types, utils, and constants * Fix Jest tests by decoupling reliance on useLoaderData from SettingsAuthProvider * Fix up Router loader data with "layout routes" https://reactrouter.com/en/main/route/route#layout-routes * Move settings validation and toast to custom hook so the toast renders * fmt * Use forks for Vitest https://vitest.dev/guide/common-errors.html#failed-to-terminate-worker * $APPCONFIG !== $APPDATA only on Linux + change the identifier back since it really doesn't seem to affect app signing * Debugging on Linux * Better directory validation, fix reset settings button * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu) * defaultDirectory can be empty in browser * fmt * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu) * re-trigger CI --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import react from '@vitejs/plugin-react'
 | 
						|
import viteTsconfigPaths from 'vite-tsconfig-paths'
 | 
						|
import eslint from 'vite-plugin-eslint'
 | 
						|
import dns from 'dns'
 | 
						|
import { defineConfig, configDefaults } from 'vitest/config'
 | 
						|
import version from 'vite-plugin-package-version'
 | 
						|
 | 
						|
// Only needed because we run Node < 17 
 | 
						|
// and we want to open `localhost` not `127.0.0.1` on server start
 | 
						|
// reference: https://vitejs.dev/config/server-options.html#server-host
 | 
						|
dns.setDefaultResultOrder('verbatim')
 | 
						|
 | 
						|
const config = defineConfig({
 | 
						|
  server: {
 | 
						|
    open: true,
 | 
						|
    port: 3000,
 | 
						|
  },
 | 
						|
  test: {
 | 
						|
    globals: true,
 | 
						|
    pool: 'forks',
 | 
						|
    poolOptions: {
 | 
						|
      forks: {
 | 
						|
        maxForks: 2,
 | 
						|
        minForks: 1,
 | 
						|
      }
 | 
						|
    },
 | 
						|
    setupFiles: 'src/setupTests.ts',
 | 
						|
    environment: 'happy-dom',
 | 
						|
    coverage: {
 | 
						|
      provider: 'istanbul' // or 'v8'
 | 
						|
    },
 | 
						|
    exclude: [...configDefaults.exclude, '**/e2e/playwright/**/*'],
 | 
						|
    deps: {
 | 
						|
      inline: ['vitest-canvas-mock']
 | 
						|
    }
 | 
						|
  },
 | 
						|
  build: {
 | 
						|
    outDir: 'build',
 | 
						|
  },
 | 
						|
  plugins: [
 | 
						|
    react(),
 | 
						|
    viteTsconfigPaths(),
 | 
						|
    eslint(),
 | 
						|
    version(),
 | 
						|
  ],
 | 
						|
})
 | 
						|
 | 
						|
export default config
 |