mirror of
https://github.com/docmost/docmost.git
synced 2026-09-11 07:56:54 +08:00
The react provider wrapper defers provider.destroy() by a timeout on unmount, so a room for the same document mounting in the same commit attaches while the old provider is still registered on the shared socket and crashes with 'Cannot attach two providers with the same effective name'. A local CollabRoom replaces it: synchronous destroy keeps unmount-before-mount ordering, and attach evicts any provider a previously interrupted teardown leaked so the crash cannot wedge a document until reload.
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:
- @vitejs/plugin-react uses Babel for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
Expanding the ESLint configuration
If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
- Configure the top-level
parserOptionsproperty like this:
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
project: ['./tsconfig.json', './tsconfig.node.json'],
tsconfigRootDir: __dirname,
},
- Replace
plugin:@typescript-eslint/recommendedtoplugin:@typescript-eslint/recommended-type-checkedorplugin:@typescript-eslint/strict-type-checked - Optionally add
plugin:@typescript-eslint/stylistic-type-checked - Install eslint-plugin-react and add
plugin:react/recommended&plugin:react/jsx-runtimeto theextendslist