utopia-ui/lib/rollup.config.js
Max 1e7320b895
feat(app): qR invites (#267)
* Add component to show invite link (WIP)

* Show invite link with copy functionality and QR-Code, add tests

* Query secrets

* Update directus collections

* Add config and invite api

* Let vite resolve paths using tsconfig

* Redeem invite link when logged in or after logging in

* Redirect to inviting profile when redeeming

* Fix some logic with login and redeeming

* Use correct redeem flow

* Hide missing form error

* Add basic relations view

* Pass profile to redeem Api and adapt to changed redeem flow

* Remove unnecessary aliases in vite config

* Remove dead import

* gitignore mac specific file

* Remove lazy loading

* Fix linting

* add InviteApi import

* Change case of file name (tbd)

* Don't toast error if user profile was not loaded yet

* Fix casing

* avoid app crash when profile of a new item is opened

---------

Co-authored-by: Anton Tranelis <mail@antontranelis.de>
2025-07-11 13:37:05 +02:00

118 lines
3.0 KiB
JavaScript

import path from 'path'
import { fileURLToPath } from 'url'
import alias from '@rollup/plugin-alias'
import commonjs from '@rollup/plugin-commonjs'
import resolve from '@rollup/plugin-node-resolve'
import typescript from '@rollup/plugin-typescript'
import { dts } from 'rollup-plugin-dts'
import postcss from 'rollup-plugin-postcss'
import svg from 'rollup-plugin-svg'
const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
const aliasConfig = alias({
entries: [{ find: '#types', replacement: path.resolve(__dirname, 'src/types') }],
})
export default [
{
input: {
index: 'src/index.tsx',
Profile: 'src/Components/Profile/index.tsx',
},
output: [
{
dir: 'dist/',
format: 'esm',
sourcemap: true,
entryFileNames: '[name].esm.js',
},
{
dir: 'dist/',
format: 'cjs',
sourcemap: true,
entryFileNames: '[name].cjs.js',
},
],
plugins: [
aliasConfig,
resolve({
extensions: ['.ts', '.tsx'],
}),
commonjs({
include: [
/node_modules\/attr-accept/,
/node_modules\/tiptap-markdown/,
/node_modules\/markdown-it-task-lists/,
/node_modules\/classnames/,
/node_modules\/react-qr-code/,
],
requireReturnsDefault: 'auto',
}),
postcss({
plugins: [],
}),
typescript({
tsconfig: './tsconfig.json',
noEmitOnError: true,
}),
svg({ base64: true }),
],
external: [
'react',
'react-dom',
'react-markdown',
'react/jsx-runtime',
'remark-breaks',
'leaflet',
'react-leaflet',
'react-toastify',
'react-string-replace',
'react-toastify/dist/ReactToastify.css',
'react-router-dom',
'react-leaflet-cluster',
'@tanstack/react-query',
'prop-types',
'leaflet/dist/leaflet.css',
'@heroicons/react/20/solid',
'@heroicons/react/24/outline/ChevronRightIcon',
'@heroicons/react/24/outline',
'date-fns',
'@heroicons/react/24/outline/InformationCircleIcon',
'@heroicons/react/24/outline/QuestionMarkCircleIcon',
'@heroicons/react/24/outline/ChevronDownIcon',
'axios',
'react-image-crop',
'react-image-crop/dist/ReactCrop.css',
'react-colorful',
'leaflet.locatecontrol/dist/L.Control.Locate.css',
'yet-another-react-lightbox',
'react-photo-album',
'react-inlinesvg',
],
},
{
input: {
index: path.resolve(__dirname, 'dist/types/src/index.d.ts'),
Profile: path.resolve(__dirname, 'dist/types/src/Components/Profile/index.d.ts'),
},
output: {
dir: path.resolve(__dirname, 'dist'),
format: 'es',
entryFileNames: '[name].d.ts',
},
plugins: [
aliasConfig,
dts({
compilerOptions: {
skipLibCheck: true,
},
}),
],
external: [/\.css$/],
watch: false,
},
]