00970c780a
- Added streaming audio previews in the Data Explorer with chunked-audio fallback playback. - Extended chunked media previews to cover audio alongside existing video handling. - Fixed Q-Deck cards index discovery to honor newest published indexes across editors, including direct-encrypted resources. - Fixed Q-Deck board loads from direct links by retrying card loads when identity is ready or the first cards fetch comes back empty. - Fixed Q-Deck create-board dialog so the private group selector only appears after enabling private mode. - Refined the Q-Deck card dialog layout to a single readable column and corrected assignee name verification. - Added a Q-Deck publish queue editor to review and remove queued publishes before batch publishing. - Improved Q-Deck responsiveness by reducing unnecessary list/card re-renders. - Added list ordering controls to the Q-Deck list manager. - Added list color controls to the Q-Deck list manager. - Improved Q-Deck list manager responsiveness by isolating its edits from the board render loop. - Removed the nonfunctional Q-Deck clone board action from the board menu. - Added Q-Deck projects with board and asset linking. - Added card scheduling fields and calendar views for boards and projects. - Allowed direct-encrypted private boards and projects without requiring a group ID. - Fixed project index writes to use the resolved issuer name and added private fallback when public project lookups fail. - Fixed project pages to open immediately after creation by falling back to locally cached project docs while QDN publishes finalize. - Added readable board details with permission summaries on project pages. - Added per-board color selection for project boards and used it in project calendars. - Added asset name display and asset detail links for project assets. - Fixed a project asset hydration loop that could trigger maximum update depth errors. - Switched project edits to queued publishing with a publish-queue indicator and batch publish action. - Added global top-bar loading tracking when project data is fetched. - Added a Q-Deck overview landing page with quick links to boards and projects. - Highlighted the project publish-queue action when there are pending publishes. - Improved project asset name resolution with cached asset lookups and numeric ID parsing. - Added cached avatar loading for Q-Deck comment authors and exposed comment counts in the header. - Improved Q-Deck comment layout with top/bottom add buttons and name-first metadata placement. - Enlarged Q-Deck comment author labels and moved timestamps beneath names. - Matched Q-Deck reply headers to the name-first comment layout.
59 lines
1.5 KiB
TypeScript
59 lines
1.5 KiB
TypeScript
import { defineConfig } from 'vite';
|
|
import react from '@vitejs/plugin-react';
|
|
import path from 'path';
|
|
import { readFileSync } from 'fs';
|
|
|
|
const pkg = JSON.parse(
|
|
readFileSync(new URL('./package.json', import.meta.url), { encoding: 'utf-8' })
|
|
);
|
|
|
|
export default defineConfig({
|
|
define: {
|
|
__APP_VERSION__: JSON.stringify(pkg.version),
|
|
},
|
|
plugins: [react()],
|
|
resolve: {
|
|
alias: {
|
|
// force a single React instance
|
|
react: path.resolve(__dirname, 'node_modules/react'),
|
|
'react/jsx-runtime': path.resolve(__dirname, 'node_modules/react/jsx-runtime.js'),
|
|
'react/jsx-dev-runtime': path.resolve(__dirname, 'node_modules/react/jsx-dev-runtime.js'),
|
|
|
|
// ✅ IMPORTANT: point server import to the browser-friendly build
|
|
'react-dom/server': path.resolve(__dirname, 'node_modules/react-dom/server.browser.js'),
|
|
},
|
|
dedupe: [
|
|
'react',
|
|
'react-dom',
|
|
'@mui/material',
|
|
'@mui/system',
|
|
'@mui/icons-material',
|
|
'@emotion/react',
|
|
'@emotion/styled',
|
|
],
|
|
},
|
|
optimizeDeps: {
|
|
include: [
|
|
'@mui/material',
|
|
'@mui/system',
|
|
'@mui/icons-material',
|
|
'@emotion/react',
|
|
'@emotion/styled',
|
|
'@mui/styled-engine',
|
|
'react/jsx-runtime',
|
|
'react/jsx-dev-runtime',
|
|
],
|
|
},
|
|
base: '',
|
|
build: {
|
|
outDir: 'dist',
|
|
rollupOptions: {
|
|
output: {
|
|
chunkFileNames: '[hash].js',
|
|
entryFileNames: '[hash].js',
|
|
assetFileNames: '[hash][extname]',
|
|
},
|
|
},
|
|
},
|
|
});
|