@undp/create-app 0.2.23 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/generateFiles/generateGitIgnore.js +0 -1
- package/bin/generateFiles/generatePackageJson.js +62 -61
- package/bin/generateFiles/generatePageForNext.js +3 -3
- package/bin/generateFiles/generateViteConfig.js +12 -4
- package/bin/templates/next/auth/README.md +2 -1
- package/bin/templates/next/auth/app/about/page.tsx +1 -1
- package/bin/templates/next/auth/app/login/page.tsx +1 -1
- package/bin/templates/next/auth/app/page.tsx +2 -2
- package/bin/templates/next/auth/app/user/page.tsx +1 -1
- package/bin/templates/next/auth/biome.json +3 -0
- package/bin/templates/next/basic/README.md +2 -1
- package/bin/templates/next/basic/app/about/page.tsx +1 -1
- package/bin/templates/next/basic/app/page.tsx +2 -2
- package/bin/templates/next/basic/biome.json +3 -0
- package/bin/templates/vite/basic/README.md +2 -1
- package/bin/templates/vite/basic/biome.json +3 -0
- package/bin/templates/vite/basic/src/App.tsx +3 -3
- package/bin/templates/vite/basic/tsconfig.json +1 -1
- package/bin/templates/vite/basic/vite.config.ts +1 -7
- package/bin/templates/vite/query/README.md +2 -1
- package/bin/templates/vite/query/biome.json +3 -0
- package/bin/templates/vite/query/src/App.tsx +4 -4
- package/bin/templates/vite/query/tsconfig.json +1 -1
- package/bin/templates/vite/query/vite.config.ts +1 -7
- package/bin/templates/vite/query+router/README.md +2 -1
- package/bin/templates/vite/query+router/biome.json +3 -0
- package/bin/templates/vite/query+router/src/App.tsx +2 -2
- package/bin/templates/vite/query+router/src/routes/queryDemo.tsx +2 -2
- package/bin/templates/vite/query+router/tsconfig.json +1 -1
- package/bin/templates/vite/query+router/vite.config.ts +1 -7
- package/bin/templates/vite/router/README.md +2 -1
- package/bin/templates/vite/router/biome.json +3 -0
- package/bin/templates/vite/router/src/App.tsx +2 -2
- package/bin/templates/vite/router/src/routes/about.tsx +1 -1
- package/bin/templates/vite/router/tsconfig.json +1 -1
- package/bin/templates/vite/router/vite.config.ts +1 -7
- package/bin/templates/viteWithLanguage/basic/README.md +2 -1
- package/bin/templates/viteWithLanguage/basic/biome.json +3 -0
- package/bin/templates/viteWithLanguage/basic/src/App.tsx +3 -3
- package/bin/templates/viteWithLanguage/basic/tsconfig.json +1 -1
- package/bin/templates/viteWithLanguage/basic/vite.config.ts +1 -7
- package/bin/templates/viteWithLanguage/query/README.md +2 -1
- package/bin/templates/viteWithLanguage/query/biome.json +3 -0
- package/bin/templates/viteWithLanguage/query/src/App.tsx +4 -4
- package/bin/templates/viteWithLanguage/query/tsconfig.json +1 -1
- package/bin/templates/viteWithLanguage/query/vite.config.ts +1 -7
- package/bin/templates/viteWithLanguage/query+router/README.md +2 -1
- package/bin/templates/viteWithLanguage/query+router/biome.json +3 -0
- package/bin/templates/viteWithLanguage/query+router/src/App.tsx +2 -2
- package/bin/templates/viteWithLanguage/query+router/src/components/Header.tsx +1 -1
- package/bin/templates/viteWithLanguage/query+router/src/routes/queryDemo.tsx +2 -2
- package/bin/templates/viteWithLanguage/query+router/tsconfig.json +1 -1
- package/bin/templates/viteWithLanguage/query+router/vite.config.ts +1 -7
- package/bin/templates/viteWithLanguage/router/README.md +2 -1
- package/bin/templates/viteWithLanguage/router/biome.json +3 -0
- package/bin/templates/viteWithLanguage/router/src/App.tsx +2 -2
- package/bin/templates/viteWithLanguage/router/src/components/Header.tsx +1 -1
- package/bin/templates/viteWithLanguage/router/src/routes/about.tsx +1 -1
- package/bin/templates/viteWithLanguage/router/tsconfig.json +1 -1
- package/bin/templates/viteWithLanguage/router/vite.config.ts +1 -7
- package/package.json +1 -1
|
@@ -14,34 +14,34 @@ export function generatePackageJson(config) {
|
|
|
14
14
|
const designSystemVer = `^${getLatestVersion('@undp/design-system-react')}`
|
|
15
15
|
const zustandVer = `^${getLatestVersion('zustand')}`
|
|
16
16
|
const dependenciesTemp = config.libraries.includes('peer') && config.libraries.includes('@undp/data-viz') ? {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
17
|
+
'@undp/design-system-react': designSystemVer,
|
|
18
|
+
'@dnd-kit/core': '^6.3.1',
|
|
19
|
+
'@dnd-kit/modifiers': '^9.0.0',
|
|
20
|
+
'ajv': '^8.17.1',
|
|
21
|
+
'dom-to-svg': '^0.12.2',
|
|
22
|
+
'file-saver': '^2.0.5',
|
|
23
|
+
'handlebars': '^4.7.8',
|
|
24
|
+
'maplibre-gl': '^5.12.0',
|
|
25
|
+
'marked': '^16.4.1',
|
|
26
|
+
'math-expression-evaluator': '^2.0.7',
|
|
27
|
+
'pmtiles': '^4.3.0',
|
|
28
|
+
'react': '^19.2.3',
|
|
29
|
+
'react-dom': '^19.2.3',
|
|
30
|
+
'react-globe.gl': '^2.37.0',
|
|
31
|
+
'three': '^0.180.0',
|
|
32
|
+
'zustand': zustandVer
|
|
33
33
|
} : {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
'@undp/design-system-react': designSystemVer,
|
|
35
|
+
'react': '^19.2.3',
|
|
36
|
+
'react-dom': '^19.2.3',
|
|
37
|
+
'zustand': zustandVer
|
|
38
38
|
};
|
|
39
39
|
|
|
40
40
|
const dependencies = config.language && !config.framework.includes('next') ? {
|
|
41
41
|
...dependenciesTemp,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
'i18next': '^26.0.8',
|
|
43
|
+
'i18next-browser-languagedetector': '^8.2.1',
|
|
44
|
+
'react-i18next': '^17.0.6',
|
|
45
45
|
} : {...dependenciesTemp}
|
|
46
46
|
|
|
47
47
|
switch (config.framework) {
|
|
@@ -73,43 +73,40 @@ export function generatePackageJson(config) {
|
|
|
73
73
|
Object.entries(dependencies).sort(([a], [b]) => a.localeCompare(b))
|
|
74
74
|
);
|
|
75
75
|
const devDependencies = config.framework.includes('vite') ? {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
"vite": "^8.0.13",
|
|
96
|
-
"vite-plugin-static-copy": "^4.1.0"
|
|
76
|
+
'@biomejs/biome': '^2.4.12',
|
|
77
|
+
'@tailwindcss/postcss': '^4.1.17',
|
|
78
|
+
'@tailwindcss/vite': '^4.3.0',
|
|
79
|
+
'@types/node': '^24.10.0',
|
|
80
|
+
'@types/react': '^19.2.7',
|
|
81
|
+
'@types/react-dom': '^19.2.3',
|
|
82
|
+
'@vitejs/plugin-react': '^6.0.2',
|
|
83
|
+
'autoprefixer': '^10.4.21',
|
|
84
|
+
'postcss': '^8.5.6',
|
|
85
|
+
'postcss-nested': '^7.0.2',
|
|
86
|
+
'rimraf': '^6.1.0',
|
|
87
|
+
'rollup-plugin-visualizer': '^6.0.5',
|
|
88
|
+
'tailwind-animate': '^0.2.10',
|
|
89
|
+
'tailwind-merge': '^3.4.0',
|
|
90
|
+
'tailwindcss': '^4.1.17',
|
|
91
|
+
'tailwindcss-animate': '^1.0.7',
|
|
92
|
+
'typescript': '^5.9.3',
|
|
93
|
+
'vite': '^8.0.13',
|
|
94
|
+
'vite-plugin-static-copy': '^4.1.0'
|
|
97
95
|
} : {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
"typescript-eslint": "^8.46.3"
|
|
96
|
+
'@biomejs/biome': '^2.4.12',
|
|
97
|
+
'@tailwindcss/postcss': '^4.1.17',
|
|
98
|
+
'@types/node': '^24.10.0',
|
|
99
|
+
'@types/react': '^19.2.7',
|
|
100
|
+
'@types/react-dom': '^19.2.3',
|
|
101
|
+
'postcss': '^8.5.6',
|
|
102
|
+
'postcss-nested': '^7.0.2',
|
|
103
|
+
'rimraf': '^6.1.0',
|
|
104
|
+
'rollup-plugin-visualizer': '^6.0.5',
|
|
105
|
+
'tailwind-animate': '^0.2.10',
|
|
106
|
+
'tailwind-merge': '^3.3.1',
|
|
107
|
+
'tailwindcss': '^4.1.17',
|
|
108
|
+
'tailwindcss-animate': '^1.0.7',
|
|
109
|
+
'typescript': '^5.9.3',
|
|
113
110
|
};
|
|
114
111
|
const sortedDevDependencies = Object.fromEntries(
|
|
115
112
|
Object.entries(devDependencies).sort(([a], [b]) => a.localeCompare(b))
|
|
@@ -131,14 +128,18 @@ export function generatePackageJson(config) {
|
|
|
131
128
|
build: 'next build',
|
|
132
129
|
start: 'next start',
|
|
133
130
|
clean: 'rimraf node_modules && rimraf .next && rimraf package-lock.json',
|
|
134
|
-
|
|
131
|
+
check: 'biome check .',
|
|
132
|
+
'check:fix': 'biome check --write .',
|
|
133
|
+
'check:unsafe': 'biome check --write --unsafe .',
|
|
135
134
|
} : {
|
|
136
135
|
dev: 'vite',
|
|
137
136
|
build: 'tsc && vite build',
|
|
138
137
|
preview: 'vite preview',
|
|
139
138
|
clean: 'rimraf node_modules && rimraf dist && rimraf package-lock.json',
|
|
140
139
|
'install:build': 'npm install && tsc && vite build',
|
|
141
|
-
|
|
140
|
+
check: 'biome check .',
|
|
141
|
+
'check:fix': 'biome check --write .',
|
|
142
|
+
'check:unsafe': 'biome check --write --unsafe .',
|
|
142
143
|
},
|
|
143
144
|
dependencies: sortedDependencies,
|
|
144
145
|
devDependencies: sortedDevDependencies
|
|
@@ -27,12 +27,12 @@ export default function Home() {
|
|
|
27
27
|
|
|
28
28
|
const { data, isLoading, isError } = useTodoData();
|
|
29
29
|
|
|
30
|
-
if (isLoading) return <Spinner size='lg' className='my-20
|
|
30
|
+
if (isLoading) return <Spinner size='lg' className='mx-auto my-20' />;
|
|
31
31
|
|
|
32
32
|
if (isError) return <>Error</>;` : ''}
|
|
33
33
|
return (
|
|
34
34
|
<>
|
|
35
|
-
<div className='
|
|
35
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
36
36
|
<Image
|
|
37
37
|
className='dark:invert'
|
|
38
38
|
src='/imgs/next.svg'
|
|
@@ -73,7 +73,7 @@ export default function Home() {
|
|
|
73
73
|
To get started, edit the App.tsx file.{' '}
|
|
74
74
|
<span className='font-bold'>Count: {count}</span>
|
|
75
75
|
</P>
|
|
76
|
-
<div className='flex
|
|
76
|
+
<div className='mb-8 flex justify-center gap-4'>
|
|
77
77
|
<Button
|
|
78
78
|
variant='tertiary'
|
|
79
79
|
onClick={() => {
|
|
@@ -95,12 +95,16 @@ export default defineConfig({
|
|
|
95
95
|
// 1. Append media first
|
|
96
96
|
mediaRules
|
|
97
97
|
.sort((a, b) => a.pxValue - b.pxValue)
|
|
98
|
-
.forEach(({ rule }) =>
|
|
98
|
+
.forEach(({ rule }) => {
|
|
99
|
+
root.append(rule);
|
|
100
|
+
});
|
|
99
101
|
|
|
100
102
|
// 2. Append container after
|
|
101
103
|
containerRules
|
|
102
104
|
.sort((a, b) => a.pxValue - b.pxValue)
|
|
103
|
-
.forEach(({ rule }) =>
|
|
105
|
+
.forEach(({ rule }) => {
|
|
106
|
+
root.append(rule);
|
|
107
|
+
});
|
|
104
108
|
},
|
|
105
109
|
},` : `
|
|
106
110
|
{
|
|
@@ -144,12 +148,16 @@ export default defineConfig({
|
|
|
144
148
|
// 1. Append media first
|
|
145
149
|
mediaRules
|
|
146
150
|
.sort((a, b) => a.pxValue - b.pxValue)
|
|
147
|
-
.forEach(({ rule }) =>
|
|
151
|
+
.forEach(({ rule }) => {
|
|
152
|
+
root.append(rule);
|
|
153
|
+
});
|
|
148
154
|
|
|
149
155
|
// 2. Append container after
|
|
150
156
|
containerRules
|
|
151
157
|
.sort((a, b) => a.pxValue - b.pxValue)
|
|
152
|
-
.forEach(({ rule }) =>
|
|
158
|
+
.forEach(({ rule }) => {
|
|
159
|
+
root.append(rule);
|
|
160
|
+
});
|
|
153
161
|
},
|
|
154
162
|
},`
|
|
155
163
|
}
|
|
@@ -33,7 +33,8 @@ The page will reload if you make edits. You will also see any lint errors in the
|
|
|
33
33
|
- `npm run build`: Executes `next build` and builds the app for production and deployment.
|
|
34
34
|
- `npm run preview`: Executes `next start` and serves the static build output locally.
|
|
35
35
|
- `npm run clean`: Executes `rimraf node_modules && rimraf .next && rimraf package-lock.json` and remove node_modules folder, dist folder and package-lock.json.
|
|
36
|
-
- `npm run
|
|
36
|
+
- `npm run check`: Executes `biome check .` and lists all the linting and prettier errors.
|
|
37
|
+
- `npm run check:fix`: Executes `biome check --write .` and resolve all the linting and prettier errors.
|
|
37
38
|
|
|
38
39
|
## 🧰 Tooling Setup
|
|
39
40
|
|
|
@@ -6,7 +6,7 @@ import Image from 'next/image';
|
|
|
6
6
|
export default function About() {
|
|
7
7
|
return (
|
|
8
8
|
<>
|
|
9
|
-
<div className='
|
|
9
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
10
10
|
<Image
|
|
11
11
|
className='dark:invert'
|
|
12
12
|
src='/imgs/next.svg'
|
|
@@ -16,7 +16,7 @@ export default function LoginPage() {
|
|
|
16
16
|
|
|
17
17
|
return (
|
|
18
18
|
<>
|
|
19
|
-
<div className='
|
|
19
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
20
20
|
<Image
|
|
21
21
|
className='dark:invert'
|
|
22
22
|
src='/imgs/next.svg'
|
|
@@ -11,7 +11,7 @@ export default function Home() {
|
|
|
11
11
|
const { increment, decrement } = useCounterActions();
|
|
12
12
|
return (
|
|
13
13
|
<>
|
|
14
|
-
<div className='
|
|
14
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
15
15
|
<Image
|
|
16
16
|
className='dark:invert'
|
|
17
17
|
src='/imgs/next.svg'
|
|
@@ -52,7 +52,7 @@ export default function Home() {
|
|
|
52
52
|
To get started, edit the App.tsx file.{' '}
|
|
53
53
|
<span className='font-bold'>Count: {count}</span>
|
|
54
54
|
</P>
|
|
55
|
-
<div className='flex gap-4
|
|
55
|
+
<div className='flex justify-center gap-4'>
|
|
56
56
|
<Button
|
|
57
57
|
variant='tertiary'
|
|
58
58
|
onClick={() => {
|
|
@@ -26,7 +26,7 @@ export default function UserPage() {
|
|
|
26
26
|
|
|
27
27
|
return (
|
|
28
28
|
<>
|
|
29
|
-
<div className='
|
|
29
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
30
30
|
<Image
|
|
31
31
|
className='dark:invert'
|
|
32
32
|
src='/imgs/next.svg'
|
|
@@ -32,7 +32,8 @@ The page will reload if you make edits. You will also see any lint errors in the
|
|
|
32
32
|
- `npm run build`: Executes `next build` and builds the app for production and deployment.
|
|
33
33
|
- `npm run preview`: Executes `next start` and serves the static build output locally.
|
|
34
34
|
- `npm run clean`: Executes `rimraf node_modules && rimraf .next && rimraf package-lock.json` and remove node_modules folder, dist folder and package-lock.json.
|
|
35
|
-
- `npm run
|
|
35
|
+
- `npm run check`: Executes `biome check .` and lists all the linting and prettier errors.
|
|
36
|
+
- `npm run check:fix`: Executes `biome check --write .` and resolve all the linting and prettier errors.
|
|
36
37
|
|
|
37
38
|
## 🧰 Tooling Setup
|
|
38
39
|
|
|
@@ -6,7 +6,7 @@ import Image from 'next/image';
|
|
|
6
6
|
export default function About() {
|
|
7
7
|
return (
|
|
8
8
|
<>
|
|
9
|
-
<div className='
|
|
9
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
10
10
|
<Image
|
|
11
11
|
className='dark:invert'
|
|
12
12
|
src='/imgs/next.svg'
|
|
@@ -11,7 +11,7 @@ export default function Home() {
|
|
|
11
11
|
const { increment, decrement } = useCounterActions();
|
|
12
12
|
return (
|
|
13
13
|
<>
|
|
14
|
-
<div className='
|
|
14
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
15
15
|
<Image
|
|
16
16
|
className='dark:invert'
|
|
17
17
|
src='/imgs/next.svg'
|
|
@@ -52,7 +52,7 @@ export default function Home() {
|
|
|
52
52
|
To get started, edit the App.tsx file.{' '}
|
|
53
53
|
<span className='font-bold'>Count: {count}</span>
|
|
54
54
|
</P>
|
|
55
|
-
<div className='flex gap-4
|
|
55
|
+
<div className='flex justify-center gap-4'>
|
|
56
56
|
<Button
|
|
57
57
|
variant='tertiary'
|
|
58
58
|
onClick={() => {
|
|
@@ -32,7 +32,8 @@ The page will reload if you make edits. You will also see any lint errors in the
|
|
|
32
32
|
- `npm run build`: Executes `tsc && vite build` and builds the app for production and deployment.
|
|
33
33
|
- `npm run preview`: Executes `vite preview` and serves the static build output (from vite build) locally.
|
|
34
34
|
- `npm run clean`: Executes `rimraf node_modules && rimraf dist && rimraf package-lock.json` and remove node_modules folder, dist folder and package-lock.json.
|
|
35
|
-
- `npm run
|
|
35
|
+
- `npm run check`: Executes `biome check .` and lists all the linting and prettier errors.
|
|
36
|
+
- `npm run check:fix`: Executes `biome check --write .` and resolve all the linting and prettier errors.
|
|
36
37
|
|
|
37
38
|
## 🧰 Tooling Setup
|
|
38
39
|
|
|
@@ -10,8 +10,8 @@ function App() {
|
|
|
10
10
|
const count = useCounter();
|
|
11
11
|
const { increment, decrement } = useCounterActions();
|
|
12
12
|
return (
|
|
13
|
-
<div className=' min-h-screen flex
|
|
14
|
-
<div className='
|
|
13
|
+
<div className='flex min-h-screen flex-col justify-center'>
|
|
14
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
15
15
|
<img
|
|
16
16
|
src='./imgs/Vitejs-logo.svg'
|
|
17
17
|
alt='vite logo'
|
|
@@ -44,7 +44,7 @@ function App() {
|
|
|
44
44
|
To get started, edit the App.tsx file.{' '}
|
|
45
45
|
<span className='font-bold'>Count: {count}</span>
|
|
46
46
|
</P>
|
|
47
|
-
<div className='flex gap-4
|
|
47
|
+
<div className='flex justify-center gap-4'>
|
|
48
48
|
<Button
|
|
49
49
|
variant='tertiary'
|
|
50
50
|
onClick={() => {
|
|
@@ -2,7 +2,6 @@ import path from 'path';
|
|
|
2
2
|
|
|
3
3
|
import { defineConfig } from 'vite';
|
|
4
4
|
import react from '@vitejs/plugin-react';
|
|
5
|
-
import eslint from '@nabla/vite-plugin-eslint';
|
|
6
5
|
import { visualizer } from 'rollup-plugin-visualizer';
|
|
7
6
|
import postcssNested from 'postcss-nested';
|
|
8
7
|
import tailwindcss from '@tailwindcss/postcss';
|
|
@@ -10,12 +9,7 @@ import { viteStaticCopy } from 'vite-plugin-static-copy';
|
|
|
10
9
|
|
|
11
10
|
export default defineConfig({
|
|
12
11
|
plugins: [
|
|
13
|
-
react(
|
|
14
|
-
babel: {
|
|
15
|
-
plugins: ['babel-plugin-react-compiler'],
|
|
16
|
-
},
|
|
17
|
-
}),
|
|
18
|
-
eslint(),
|
|
12
|
+
react(),
|
|
19
13
|
visualizer({ filename: 'stats.html', open: true }),
|
|
20
14
|
viteStaticCopy({
|
|
21
15
|
targets: [{ src: 'staticwebapp.config.json', dest: '' }],
|
|
@@ -33,7 +33,8 @@ The page will reload if you make edits. You will also see any lint errors in the
|
|
|
33
33
|
- `npm run build`: Executes `tsc && vite build` and builds the app for production and deployment.
|
|
34
34
|
- `npm run preview`: Executes `vite preview` and serves the static build output (from vite build) locally.
|
|
35
35
|
- `npm run clean`: Executes `rimraf node_modules && rimraf dist && rimraf package-lock.json` and remove node_modules folder, dist folder and package-lock.json.
|
|
36
|
-
- `npm run
|
|
36
|
+
- `npm run check`: Executes `biome check .` and lists all the linting and prettier errors.
|
|
37
|
+
- `npm run check:fix`: Executes `biome check --write .` and resolve all the linting and prettier errors.
|
|
37
38
|
|
|
38
39
|
## 🧰 Tooling Setup
|
|
39
40
|
|
|
@@ -26,12 +26,12 @@ function App() {
|
|
|
26
26
|
const count = useCounter();
|
|
27
27
|
const { increment, decrement } = useCounterActions();
|
|
28
28
|
|
|
29
|
-
if (isLoading) return <Spinner size='lg' className='my-20
|
|
29
|
+
if (isLoading) return <Spinner size='lg' className='mx-auto my-20' />;
|
|
30
30
|
|
|
31
31
|
if (isError) return <>Error</>;
|
|
32
32
|
return (
|
|
33
|
-
<div className=' min-h-screen flex
|
|
34
|
-
<div className='
|
|
33
|
+
<div className='flex min-h-screen flex-col justify-center'>
|
|
34
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
35
35
|
<img
|
|
36
36
|
src='./imgs/Vitejs-logo.svg'
|
|
37
37
|
alt='vite logo'
|
|
@@ -71,7 +71,7 @@ function App() {
|
|
|
71
71
|
To get started, edit the App.tsx file.{' '}
|
|
72
72
|
<span className='font-bold'>Count: {count}</span>
|
|
73
73
|
</P>
|
|
74
|
-
<div className='flex
|
|
74
|
+
<div className='mb-8 flex justify-center gap-4'>
|
|
75
75
|
<Button
|
|
76
76
|
variant='tertiary'
|
|
77
77
|
onClick={() => {
|
|
@@ -2,7 +2,6 @@ import path from 'path';
|
|
|
2
2
|
|
|
3
3
|
import { defineConfig } from 'vite';
|
|
4
4
|
import react from '@vitejs/plugin-react';
|
|
5
|
-
import eslint from '@nabla/vite-plugin-eslint';
|
|
6
5
|
import { visualizer } from 'rollup-plugin-visualizer';
|
|
7
6
|
import postcssNested from 'postcss-nested';
|
|
8
7
|
import tailwindcss from '@tailwindcss/postcss';
|
|
@@ -10,12 +9,7 @@ import { viteStaticCopy } from 'vite-plugin-static-copy';
|
|
|
10
9
|
|
|
11
10
|
export default defineConfig({
|
|
12
11
|
plugins: [
|
|
13
|
-
react(
|
|
14
|
-
babel: {
|
|
15
|
-
plugins: ['babel-plugin-react-compiler'],
|
|
16
|
-
},
|
|
17
|
-
}),
|
|
18
|
-
eslint(),
|
|
12
|
+
react(),
|
|
19
13
|
visualizer({ filename: 'stats.html', open: true }),
|
|
20
14
|
viteStaticCopy({
|
|
21
15
|
targets: [{ src: 'staticwebapp.config.json', dest: '' }],
|
|
@@ -34,7 +34,8 @@ The page will reload if you make edits. You will also see any lint errors in the
|
|
|
34
34
|
- `npm run build`: Executes `tsc && vite build` and builds the app for production and deployment.
|
|
35
35
|
- `npm run preview`: Executes `vite preview` and serves the static build output (from vite build) locally.
|
|
36
36
|
- `npm run clean`: Executes `rimraf node_modules && rimraf dist && rimraf package-lock.json` and remove node_modules folder, dist folder and package-lock.json.
|
|
37
|
-
- `npm run
|
|
37
|
+
- `npm run check`: Executes `biome check .` and lists all the linting and prettier errors.
|
|
38
|
+
- `npm run check:fix`: Executes `biome check --write .` and resolve all the linting and prettier errors.
|
|
38
39
|
|
|
39
40
|
## 🧰 Tooling Setup
|
|
40
41
|
|
|
@@ -8,7 +8,7 @@ function App() {
|
|
|
8
8
|
const { increment, decrement } = useCounterActions();
|
|
9
9
|
return (
|
|
10
10
|
<>
|
|
11
|
-
<div className='
|
|
11
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
12
12
|
<img
|
|
13
13
|
src='./imgs/Vitejs-logo.svg'
|
|
14
14
|
alt='vite logo'
|
|
@@ -48,7 +48,7 @@ function App() {
|
|
|
48
48
|
To get started, edit the App.tsx file.{' '}
|
|
49
49
|
<span className='font-bold'>Count: {count}</span>
|
|
50
50
|
</P>
|
|
51
|
-
<div className='flex
|
|
51
|
+
<div className='mb-8 flex justify-center gap-4'>
|
|
52
52
|
<Button
|
|
53
53
|
variant='tertiary'
|
|
54
54
|
onClick={() => {
|
|
@@ -19,12 +19,12 @@ function useTodoData() {
|
|
|
19
19
|
export function TanStackQueryDemo() {
|
|
20
20
|
const { data, isLoading, isError } = useTodoData();
|
|
21
21
|
|
|
22
|
-
if (isLoading) return <Spinner size='lg' className='my-20
|
|
22
|
+
if (isLoading) return <Spinner size='lg' className='mx-auto my-20' />;
|
|
23
23
|
|
|
24
24
|
if (isError) return <>Error</>;
|
|
25
25
|
return (
|
|
26
26
|
<>
|
|
27
|
-
<div className='
|
|
27
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
28
28
|
<img
|
|
29
29
|
src='/imgs/Vitejs-logo.svg'
|
|
30
30
|
alt='vite logo'
|
|
@@ -2,7 +2,6 @@ import path from 'path';
|
|
|
2
2
|
|
|
3
3
|
import { defineConfig } from 'vite';
|
|
4
4
|
import react from '@vitejs/plugin-react';
|
|
5
|
-
import eslint from '@nabla/vite-plugin-eslint';
|
|
6
5
|
import { visualizer } from 'rollup-plugin-visualizer';
|
|
7
6
|
import postcssNested from 'postcss-nested';
|
|
8
7
|
import tailwindcss from '@tailwindcss/postcss';
|
|
@@ -10,12 +9,7 @@ import { viteStaticCopy } from 'vite-plugin-static-copy';
|
|
|
10
9
|
|
|
11
10
|
export default defineConfig({
|
|
12
11
|
plugins: [
|
|
13
|
-
react(
|
|
14
|
-
babel: {
|
|
15
|
-
plugins: ['babel-plugin-react-compiler'],
|
|
16
|
-
},
|
|
17
|
-
}),
|
|
18
|
-
eslint(),
|
|
12
|
+
react(),
|
|
19
13
|
visualizer({ filename: 'stats.html', open: true }),
|
|
20
14
|
viteStaticCopy({
|
|
21
15
|
targets: [{ src: 'staticwebapp.config.json', dest: '' }],
|
|
@@ -33,7 +33,8 @@ The page will reload if you make edits. You will also see any lint errors in the
|
|
|
33
33
|
- `npm run build`: Executes `tsc && vite build` and builds the app for production and deployment.
|
|
34
34
|
- `npm run preview`: Executes `vite preview` and serves the static build output (from vite build) locally.
|
|
35
35
|
- `npm run clean`: Executes `rimraf node_modules && rimraf dist && rimraf package-lock.json` and remove node_modules folder, dist folder and package-lock.json.
|
|
36
|
-
- `npm run
|
|
36
|
+
- `npm run check`: Executes `biome check .` and lists all the linting and prettier errors.
|
|
37
|
+
- `npm run check:fix`: Executes `biome check --write .` and resolve all the linting and prettier errors.
|
|
37
38
|
|
|
38
39
|
## 🧰 Tooling Setup
|
|
39
40
|
|
|
@@ -8,7 +8,7 @@ export function App() {
|
|
|
8
8
|
const { increment, decrement } = useCounterActions();
|
|
9
9
|
return (
|
|
10
10
|
<>
|
|
11
|
-
<div className='
|
|
11
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
12
12
|
<img
|
|
13
13
|
src='./imgs/Vitejs-logo.svg'
|
|
14
14
|
alt='vite logo'
|
|
@@ -48,7 +48,7 @@ export function App() {
|
|
|
48
48
|
To get started, edit the App.tsx file.{' '}
|
|
49
49
|
<span className='font-bold'>Count: {count}</span>
|
|
50
50
|
</P>
|
|
51
|
-
<div className='flex
|
|
51
|
+
<div className='mb-8 flex justify-center gap-4'>
|
|
52
52
|
<Button
|
|
53
53
|
variant='tertiary'
|
|
54
54
|
onClick={() => {
|
|
@@ -5,7 +5,7 @@ import { P } from '@undp/design-system-react/Typography';
|
|
|
5
5
|
export function About() {
|
|
6
6
|
return (
|
|
7
7
|
<>
|
|
8
|
-
<div className='
|
|
8
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
9
9
|
<img
|
|
10
10
|
src='/imgs/Vitejs-logo.svg'
|
|
11
11
|
alt='vite logo'
|
|
@@ -2,7 +2,6 @@ import path from 'path';
|
|
|
2
2
|
|
|
3
3
|
import { defineConfig } from 'vite';
|
|
4
4
|
import react from '@vitejs/plugin-react';
|
|
5
|
-
import eslint from '@nabla/vite-plugin-eslint';
|
|
6
5
|
import { visualizer } from 'rollup-plugin-visualizer';
|
|
7
6
|
import postcssNested from 'postcss-nested';
|
|
8
7
|
import tailwindcss from '@tailwindcss/postcss';
|
|
@@ -10,12 +9,7 @@ import { viteStaticCopy } from 'vite-plugin-static-copy';
|
|
|
10
9
|
|
|
11
10
|
export default defineConfig({
|
|
12
11
|
plugins: [
|
|
13
|
-
react(
|
|
14
|
-
babel: {
|
|
15
|
-
plugins: ['babel-plugin-react-compiler'],
|
|
16
|
-
},
|
|
17
|
-
}),
|
|
18
|
-
eslint(),
|
|
12
|
+
react(),
|
|
19
13
|
visualizer({ filename: 'stats.html', open: true }),
|
|
20
14
|
viteStaticCopy({
|
|
21
15
|
targets: [{ src: 'staticwebapp.config.json', dest: '' }],
|
|
@@ -32,7 +32,8 @@ The page will reload if you make edits. You will also see any lint errors in the
|
|
|
32
32
|
- `npm run build`: Executes `tsc && vite build` and builds the app for production and deployment.
|
|
33
33
|
- `npm run preview`: Executes `vite preview` and serves the static build output (from vite build) locally.
|
|
34
34
|
- `npm run clean`: Executes `rimraf node_modules && rimraf dist && rimraf package-lock.json` and remove node_modules folder, dist folder and package-lock.json.
|
|
35
|
-
- `npm run
|
|
35
|
+
- `npm run check`: Executes `biome check .` and lists all the linting and prettier errors.
|
|
36
|
+
- `npm run check:fix`: Executes `biome check --write .` and resolve all the linting and prettier errors.
|
|
36
37
|
|
|
37
38
|
## 🧰 Tooling Setup
|
|
38
39
|
|
|
@@ -14,8 +14,8 @@ function App() {
|
|
|
14
14
|
const { increment, decrement } = useCounterActions();
|
|
15
15
|
const { i18n, t } = useTranslation();
|
|
16
16
|
return (
|
|
17
|
-
<div className=' min-h-screen flex
|
|
18
|
-
<div className='
|
|
17
|
+
<div className='flex min-h-screen flex-col justify-center'>
|
|
18
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
19
19
|
<img
|
|
20
20
|
src='./imgs/Vitejs-logo.svg'
|
|
21
21
|
alt='vite logo'
|
|
@@ -70,7 +70,7 @@ function App() {
|
|
|
70
70
|
{t('started', { fileName: 'app.tsx' })}{' '}
|
|
71
71
|
<span className='font-bold'>{t('count', { count: count })}</span>
|
|
72
72
|
</P>
|
|
73
|
-
<div className='flex gap-4
|
|
73
|
+
<div className='flex justify-center gap-4'>
|
|
74
74
|
<Button
|
|
75
75
|
variant='tertiary'
|
|
76
76
|
onClick={() => {
|
|
@@ -2,7 +2,6 @@ import path from 'path';
|
|
|
2
2
|
|
|
3
3
|
import { defineConfig } from 'vite';
|
|
4
4
|
import react from '@vitejs/plugin-react';
|
|
5
|
-
import eslint from '@nabla/vite-plugin-eslint';
|
|
6
5
|
import { visualizer } from 'rollup-plugin-visualizer';
|
|
7
6
|
import postcssNested from 'postcss-nested';
|
|
8
7
|
import tailwindcss from '@tailwindcss/postcss';
|
|
@@ -10,12 +9,7 @@ import { viteStaticCopy } from 'vite-plugin-static-copy';
|
|
|
10
9
|
|
|
11
10
|
export default defineConfig({
|
|
12
11
|
plugins: [
|
|
13
|
-
react(
|
|
14
|
-
babel: {
|
|
15
|
-
plugins: ['babel-plugin-react-compiler'],
|
|
16
|
-
},
|
|
17
|
-
}),
|
|
18
|
-
eslint(),
|
|
12
|
+
react(),
|
|
19
13
|
visualizer({ filename: 'stats.html', open: true }),
|
|
20
14
|
viteStaticCopy({
|
|
21
15
|
targets: [{ src: 'staticwebapp.config.json', dest: '' }],
|
|
@@ -33,7 +33,8 @@ The page will reload if you make edits. You will also see any lint errors in the
|
|
|
33
33
|
- `npm run build`: Executes `tsc && vite build` and builds the app for production and deployment.
|
|
34
34
|
- `npm run preview`: Executes `vite preview` and serves the static build output (from vite build) locally.
|
|
35
35
|
- `npm run clean`: Executes `rimraf node_modules && rimraf dist && rimraf package-lock.json` and remove node_modules folder, dist folder and package-lock.json.
|
|
36
|
-
- `npm run
|
|
36
|
+
- `npm run check`: Executes `biome check .` and lists all the linting and prettier errors.
|
|
37
|
+
- `npm run check:fix`: Executes `biome check --write .` and resolve all the linting and prettier errors.
|
|
37
38
|
|
|
38
39
|
## 🧰 Tooling Setup
|
|
39
40
|
|
|
@@ -30,12 +30,12 @@ function App() {
|
|
|
30
30
|
const count = useCounter();
|
|
31
31
|
const { increment, decrement } = useCounterActions();
|
|
32
32
|
|
|
33
|
-
if (isLoading) return <Spinner size='lg' className='my-20
|
|
33
|
+
if (isLoading) return <Spinner size='lg' className='mx-auto my-20' />;
|
|
34
34
|
|
|
35
35
|
if (isError) return <>Error</>;
|
|
36
36
|
return (
|
|
37
|
-
<div className=' min-h-screen flex
|
|
38
|
-
<div className='
|
|
37
|
+
<div className='flex min-h-screen flex-col justify-center'>
|
|
38
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
39
39
|
<img
|
|
40
40
|
src='./imgs/Vitejs-logo.svg'
|
|
41
41
|
alt='vite logo'
|
|
@@ -97,7 +97,7 @@ function App() {
|
|
|
97
97
|
{t('started', { fileName: 'app.tsx' })}{' '}
|
|
98
98
|
<span className='font-bold'>{t('count', { count: count })}</span>
|
|
99
99
|
</P>
|
|
100
|
-
<div className='flex
|
|
100
|
+
<div className='mb-8 flex justify-center gap-4'>
|
|
101
101
|
<Button
|
|
102
102
|
variant='tertiary'
|
|
103
103
|
onClick={() => {
|
|
@@ -2,7 +2,6 @@ import path from 'path';
|
|
|
2
2
|
|
|
3
3
|
import { defineConfig } from 'vite';
|
|
4
4
|
import react from '@vitejs/plugin-react';
|
|
5
|
-
import eslint from '@nabla/vite-plugin-eslint';
|
|
6
5
|
import { visualizer } from 'rollup-plugin-visualizer';
|
|
7
6
|
import postcssNested from 'postcss-nested';
|
|
8
7
|
import tailwindcss from '@tailwindcss/postcss';
|
|
@@ -10,12 +9,7 @@ import { viteStaticCopy } from 'vite-plugin-static-copy';
|
|
|
10
9
|
|
|
11
10
|
export default defineConfig({
|
|
12
11
|
plugins: [
|
|
13
|
-
react(
|
|
14
|
-
babel: {
|
|
15
|
-
plugins: ['babel-plugin-react-compiler'],
|
|
16
|
-
},
|
|
17
|
-
}),
|
|
18
|
-
eslint(),
|
|
12
|
+
react(),
|
|
19
13
|
visualizer({ filename: 'stats.html', open: true }),
|
|
20
14
|
viteStaticCopy({
|
|
21
15
|
targets: [{ src: 'staticwebapp.config.json', dest: '' }],
|
|
@@ -34,7 +34,8 @@ The page will reload if you make edits. You will also see any lint errors in the
|
|
|
34
34
|
- `npm run build`: Executes `tsc && vite build` and builds the app for production and deployment.
|
|
35
35
|
- `npm run preview`: Executes `vite preview` and serves the static build output (from vite build) locally.
|
|
36
36
|
- `npm run clean`: Executes `rimraf node_modules && rimraf dist && rimraf package-lock.json` and remove node_modules folder, dist folder and package-lock.json.
|
|
37
|
-
- `npm run
|
|
37
|
+
- `npm run check`: Executes `biome check .` and lists all the linting and prettier errors.
|
|
38
|
+
- `npm run check:fix`: Executes `biome check --write .` and resolve all the linting and prettier errors.
|
|
38
39
|
|
|
39
40
|
## 🧰 Tooling Setup
|
|
40
41
|
|
|
@@ -10,7 +10,7 @@ function App() {
|
|
|
10
10
|
const { increment, decrement } = useCounterActions();
|
|
11
11
|
return (
|
|
12
12
|
<>
|
|
13
|
-
<div className='
|
|
13
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
14
14
|
<img
|
|
15
15
|
src='/imgs/Vitejs-logo.svg'
|
|
16
16
|
alt='vite logo'
|
|
@@ -50,7 +50,7 @@ function App() {
|
|
|
50
50
|
{t('started', { fileName: 'app.tsx' })}{' '}
|
|
51
51
|
<span className='font-bold'>{t('count', { count: count })}</span>
|
|
52
52
|
</P>
|
|
53
|
-
<div className='flex
|
|
53
|
+
<div className='mb-8 flex justify-center gap-4'>
|
|
54
54
|
<Button
|
|
55
55
|
variant='tertiary'
|
|
56
56
|
onClick={() => {
|
|
@@ -39,7 +39,7 @@ export default function HeaderEl() {
|
|
|
39
39
|
<HeaderActions>
|
|
40
40
|
<DropdownMenu>
|
|
41
41
|
<DropdownMenuTrigger asChild>
|
|
42
|
-
<div className='cursor-pointer
|
|
42
|
+
<div className='flex h-9 cursor-pointer items-center justify-between gap-2 whitespace-nowrap bg-transparent p-0 font-semibold text-primary-blue-600 text-sm uppercase hover:text-primary-blue-400 disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-muted-foreground dark:text-primary-white dark:hover:text-primary-white rtl:[direction:rtl] [&>span]:line-clamp-1 [&[data-state=open]>.chevron-down]:rotate-180'>
|
|
43
43
|
<LanguageSwitcherIcon />
|
|
44
44
|
{LANGUAGES.find(d => d.id === locale)?.label}
|
|
45
45
|
<ChevronDown />
|
|
@@ -21,12 +21,12 @@ export function TanStackQueryDemo() {
|
|
|
21
21
|
const { data, isLoading, isError } = useTodoData();
|
|
22
22
|
const { t } = useTranslation();
|
|
23
23
|
|
|
24
|
-
if (isLoading) return <Spinner size='lg' className='my-20
|
|
24
|
+
if (isLoading) return <Spinner size='lg' className='mx-auto my-20' />;
|
|
25
25
|
|
|
26
26
|
if (isError) return <>Error</>;
|
|
27
27
|
return (
|
|
28
28
|
<>
|
|
29
|
-
<div className='
|
|
29
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
30
30
|
<img
|
|
31
31
|
src='/imgs/Vitejs-logo.svg'
|
|
32
32
|
alt='vite logo'
|
|
@@ -2,7 +2,6 @@ import path from 'path';
|
|
|
2
2
|
|
|
3
3
|
import { defineConfig } from 'vite';
|
|
4
4
|
import react from '@vitejs/plugin-react';
|
|
5
|
-
import eslint from '@nabla/vite-plugin-eslint';
|
|
6
5
|
import { visualizer } from 'rollup-plugin-visualizer';
|
|
7
6
|
import postcssNested from 'postcss-nested';
|
|
8
7
|
import tailwindcss from '@tailwindcss/postcss';
|
|
@@ -10,12 +9,7 @@ import { viteStaticCopy } from 'vite-plugin-static-copy';
|
|
|
10
9
|
|
|
11
10
|
export default defineConfig({
|
|
12
11
|
plugins: [
|
|
13
|
-
react(
|
|
14
|
-
babel: {
|
|
15
|
-
plugins: ['babel-plugin-react-compiler'],
|
|
16
|
-
},
|
|
17
|
-
}),
|
|
18
|
-
eslint(),
|
|
12
|
+
react(),
|
|
19
13
|
visualizer({ filename: 'stats.html', open: true }),
|
|
20
14
|
viteStaticCopy({
|
|
21
15
|
targets: [{ src: 'staticwebapp.config.json', dest: '' }],
|
|
@@ -33,7 +33,8 @@ The page will reload if you make edits. You will also see any lint errors in the
|
|
|
33
33
|
- `npm run build`: Executes `tsc && vite build` and builds the app for production and deployment.
|
|
34
34
|
- `npm run preview`: Executes `vite preview` and serves the static build output (from vite build) locally.
|
|
35
35
|
- `npm run clean`: Executes `rimraf node_modules && rimraf dist && rimraf package-lock.json` and remove node_modules folder, dist folder and package-lock.json.
|
|
36
|
-
- `npm run
|
|
36
|
+
- `npm run check`: Executes `biome check .` and lists all the linting and prettier errors.
|
|
37
|
+
- `npm run check:fix`: Executes `biome check --write .` and resolve all the linting and prettier errors.
|
|
37
38
|
|
|
38
39
|
## 🧰 Tooling Setup
|
|
39
40
|
|
|
@@ -9,7 +9,7 @@ export function App() {
|
|
|
9
9
|
const { increment, decrement } = useCounterActions();
|
|
10
10
|
return (
|
|
11
11
|
<>
|
|
12
|
-
<div className='
|
|
12
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
13
13
|
<img
|
|
14
14
|
src='/imgs/Vitejs-logo.svg'
|
|
15
15
|
alt='vite logo'
|
|
@@ -49,7 +49,7 @@ export function App() {
|
|
|
49
49
|
{t('started', { fileName: 'app.tsx' })}{' '}
|
|
50
50
|
<span className='font-bold'>{t('count', { count: count })}</span>
|
|
51
51
|
</P>
|
|
52
|
-
<div className='flex
|
|
52
|
+
<div className='mb-8 flex justify-center gap-4'>
|
|
53
53
|
<Button
|
|
54
54
|
variant='tertiary'
|
|
55
55
|
onClick={() => {
|
|
@@ -39,7 +39,7 @@ export default function HeaderEl() {
|
|
|
39
39
|
<HeaderActions>
|
|
40
40
|
<DropdownMenu>
|
|
41
41
|
<DropdownMenuTrigger asChild>
|
|
42
|
-
<div className='cursor-pointer
|
|
42
|
+
<div className='flex h-9 cursor-pointer items-center justify-between gap-2 whitespace-nowrap bg-transparent p-0 font-semibold text-primary-blue-600 text-sm uppercase hover:text-primary-blue-400 disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-muted-foreground dark:text-primary-white dark:hover:text-primary-white rtl:[direction:rtl] [&>span]:line-clamp-1 [&[data-state=open]>.chevron-down]:rotate-180'>
|
|
43
43
|
<LanguageSwitcherIcon />
|
|
44
44
|
{LANGUAGES.find(d => d.id === locale)?.label}
|
|
45
45
|
<ChevronDown />
|
|
@@ -7,7 +7,7 @@ export function About() {
|
|
|
7
7
|
const { t } = useTranslation();
|
|
8
8
|
return (
|
|
9
9
|
<>
|
|
10
|
-
<div className='
|
|
10
|
+
<div className='mx-auto my-8 flex items-center justify-center gap-4'>
|
|
11
11
|
<img
|
|
12
12
|
src='/imgs/Vitejs-logo.svg'
|
|
13
13
|
alt='vite logo'
|
|
@@ -2,7 +2,6 @@ import path from 'path';
|
|
|
2
2
|
|
|
3
3
|
import { defineConfig } from 'vite';
|
|
4
4
|
import react from '@vitejs/plugin-react';
|
|
5
|
-
import eslint from '@nabla/vite-plugin-eslint';
|
|
6
5
|
import { visualizer } from 'rollup-plugin-visualizer';
|
|
7
6
|
import postcssNested from 'postcss-nested';
|
|
8
7
|
import tailwindcss from '@tailwindcss/postcss';
|
|
@@ -10,12 +9,7 @@ import { viteStaticCopy } from 'vite-plugin-static-copy';
|
|
|
10
9
|
|
|
11
10
|
export default defineConfig({
|
|
12
11
|
plugins: [
|
|
13
|
-
react(
|
|
14
|
-
babel: {
|
|
15
|
-
plugins: ['babel-plugin-react-compiler'],
|
|
16
|
-
},
|
|
17
|
-
}),
|
|
18
|
-
eslint(),
|
|
12
|
+
react(),
|
|
19
13
|
visualizer({ filename: 'stats.html', open: true }),
|
|
20
14
|
viteStaticCopy({
|
|
21
15
|
targets: [{ src: 'staticwebapp.config.json', dest: '' }],
|