Skip to content

Commit 1a092a8

Browse files
committed
Use shadcn-admin-kit instead of react-admin, update configuration.
1 parent 7b40335 commit 1a092a8

File tree

419 files changed

+29308
-26350
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

419 files changed

+29308
-26350
lines changed

.eslintrc.json

Lines changed: 0 additions & 44 deletions
This file was deleted.

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v20
1+
v22

eslint.config.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
// For more info, see https://github.com/storybookjs/eslint-plugin-storybook#configuration-flat-config-format
2+
import storybook from "eslint-plugin-storybook";
3+
4+
import js from "@eslint/js";
5+
import reactHooks from "eslint-plugin-react-hooks";
6+
import reactRefresh from "eslint-plugin-react-refresh";
7+
import globals from "globals";
8+
import tseslint from "typescript-eslint";
9+
10+
export default tseslint.config(
11+
{ ignores: ["dist"] },
12+
{
13+
extends: [js.configs.recommended, ...tseslint.configs.recommended],
14+
files: ["**/*.{ts,tsx}"],
15+
languageOptions: {
16+
ecmaVersion: 2020,
17+
globals: globals.browser,
18+
},
19+
plugins: {
20+
"react-hooks": reactHooks,
21+
"react-refresh": reactRefresh,
22+
},
23+
rules: {
24+
...reactHooks.configs.recommended.rules,
25+
"react-refresh/only-export-components": [
26+
"warn",
27+
{ allowConstantExport: true },
28+
],
29+
"@typescript-eslint/no-unused-vars": [
30+
"error",
31+
{
32+
varsIgnorePattern: "^_",
33+
argsIgnorePattern: "^_",
34+
},
35+
],
36+
"@typescript-eslint/no-explicit-any": "off",
37+
},
38+
},
39+
storybook.configs["flat/recommended"]
40+
);

index.html

Lines changed: 100 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -1,125 +1,116 @@
11
<!doctype html>
22
<html lang="en">
3-
<head>
4-
<meta charset="utf-8" />
5-
<meta
3+
<head>
4+
<meta charset="utf-8"/>
5+
<meta
66
name="viewport"
77
content="minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no"
8-
/>
9-
<meta name="theme-color" content="#000000" />
10-
<link rel="manifest" href="./manifest.json" />
11-
<link rel="shortcut icon" href="./favicon.ico" />
12-
<title>Atomic CRM</title>
13-
<style>
14-
body {
15-
margin: 0;
16-
padding: 0;
17-
font-family: sans-serif;
18-
}
8+
/>
9+
<meta name="theme-color" content="#000000"/>
10+
<link rel="manifest" href="./manifest.json"/>
11+
<link rel="shortcut icon" href="./favicon.ico"/>
12+
<title>Atomic CRM</title>
1913

20-
.loader-container {
21-
display: flex;
22-
align-items: center;
23-
justify-content: center;
24-
flex-direction: column;
25-
position: absolute;
26-
top: 0;
27-
bottom: 0;
28-
left: 0;
29-
right: 0;
30-
background-color: #fafafa;
31-
}
14+
<style>
15+
body {
16+
margin: 0;
17+
padding: 0;
18+
font-family: sans-serif;
19+
}
3220

33-
/* CSS Spinner from https://projects.lukehaas.me/css-loaders/ */
21+
.loader-container {
22+
display: flex;
23+
align-items: center;
24+
justify-content: center;
25+
flex-direction: column;
26+
position: absolute;
27+
top: 0;
28+
bottom: 0;
29+
left: 0;
30+
right: 0;
31+
background-color: #fafafa;
32+
}
3433

35-
.loader,
36-
.loader:before,
37-
.loader:after {
38-
border-radius: 50%;
39-
}
34+
/* CSS Spinner from https://projects.lukehaas.me/css-loaders/ */
4035

41-
.loader {
42-
color: #283593;
43-
font-size: 11px;
44-
text-indent: -99999em;
45-
margin: 55px auto;
46-
position: relative;
47-
width: 10em;
48-
height: 10em;
49-
box-shadow: inset 0 0 0 1em;
50-
-webkit-transform: translateZ(0);
51-
-ms-transform: translateZ(0);
52-
transform: translateZ(0);
53-
}
36+
.loader,
37+
.loader:before,
38+
.loader:after {
39+
border-radius: 50%;
40+
}
5441

55-
.loader:before,
56-
.loader:after {
57-
position: absolute;
58-
content: '';
59-
}
42+
.loader {
43+
color: #283593;
44+
font-size: 11px;
45+
text-indent: -99999em;
46+
margin: 55px auto;
47+
position: relative;
48+
width: 10em;
49+
height: 10em;
50+
box-shadow: inset 0 0 0 1em;
51+
-webkit-transform: translateZ(0);
52+
-ms-transform: translateZ(0);
53+
transform: translateZ(0);
54+
}
6055

61-
.loader:before {
62-
width: 5.2em;
63-
height: 10.2em;
64-
background: #fafafa;
65-
border-radius: 10.2em 0 0 10.2em;
66-
top: -0.1em;
67-
left: -0.1em;
68-
-webkit-transform-origin: 5.2em 5.1em;
69-
transform-origin: 5.2em 5.1em;
70-
-webkit-animation: load2 2s infinite ease 1.5s;
71-
animation: load2 2s infinite ease 1.5s;
72-
}
56+
.loader:before,
57+
.loader:after {
58+
position: absolute;
59+
content: "";
60+
}
7361

74-
.loader:after {
75-
width: 5.2em;
76-
height: 10.2em;
77-
background: #fafafa;
78-
border-radius: 0 10.2em 10.2em 0;
79-
top: -0.1em;
80-
left: 5.1em;
81-
-webkit-transform-origin: 0px 5.1em;
82-
transform-origin: 0px 5.1em;
83-
-webkit-animation: load2 2s infinite ease;
84-
animation: load2 2s infinite ease;
85-
}
62+
.loader:before {
63+
width: 5.2em;
64+
height: 10.2em;
65+
background: #fafafa;
66+
border-radius: 10.2em 0 0 10.2em;
67+
top: -0.1em;
68+
left: -0.1em;
69+
-webkit-transform-origin: 5.2em 5.1em;
70+
transform-origin: 5.2em 5.1em;
71+
-webkit-animation: load2 2s infinite ease 1.5s;
72+
animation: load2 2s infinite ease 1.5s;
73+
}
8674

87-
@-webkit-keyframes load2 {
88-
0% {
89-
-webkit-transform: rotate(0deg);
90-
transform: rotate(0deg);
91-
}
92-
100% {
93-
-webkit-transform: rotate(360deg);
94-
transform: rotate(360deg);
95-
}
96-
}
75+
.loader:after {
76+
width: 5.2em;
77+
height: 10.2em;
78+
background: #fafafa;
79+
border-radius: 0 10.2em 10.2em 0;
80+
top: -0.1em;
81+
left: 5.1em;
82+
-webkit-transform-origin: 0px 5.1em;
83+
transform-origin: 0px 5.1em;
84+
-webkit-animation: load2 2s infinite ease;
85+
animation: load2 2s infinite ease;
86+
}
9787

98-
@keyframes load2 {
99-
0% {
100-
-webkit-transform: rotate(0deg);
101-
transform: rotate(0deg);
102-
}
103-
100% {
104-
-webkit-transform: rotate(360deg);
105-
transform: rotate(360deg);
106-
}
88+
@-webkit-keyframes load2 {
89+
0% {
90+
-webkit-transform: rotate(0deg);
91+
transform: rotate(0deg);
92+
}
93+
100% {
94+
-webkit-transform: rotate(360deg);
95+
transform: rotate(360deg);
10796
}
108-
</style>
109-
<link rel="preconnect" href="https://fonts.gstatic.com" />
110-
<link
111-
href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"
112-
rel="stylesheet"
113-
/>
114-
</head>
97+
}
11598

116-
<body>
117-
<noscript> You need to enable JavaScript to run this app. </noscript>
118-
<div id="root">
119-
<div class="loader-container">
120-
<div class="loader">Loading...</div>
121-
</div>
122-
</div>
123-
</body>
124-
<script type="module" src="/src/script.tsx"></script>
99+
@keyframes load2 {
100+
0% {
101+
-webkit-transform: rotate(0deg);
102+
transform: rotate(0deg);
103+
}
104+
100% {
105+
-webkit-transform: rotate(360deg);
106+
transform: rotate(360deg);
107+
}
108+
}
109+
</style>
110+
</head>
111+
<body>
112+
<div id="root"></div>
113+
<noscript>You need to enable JavaScript to run this app.</noscript>
114+
<script type="module" src="/src/main.tsx"></script>
115+
</body>
125116
</html>

makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@ start-app: ## start the app locally
2323

2424
start: start-supabase start-app ## start the stack locally
2525

26+
start-demo: ## start the app locally in demo mode
27+
VITE_IS_DEMO=true npm run dev
28+
29+
start-dev: ## start the app locally in dev mode (with fakerest and demo data)
30+
VITE_USE_FAKEREST=true npm run dev
31+
2632
stop-supabase: ## stop local supabase
2733
npx supabase stop
2834

0 commit comments

Comments
 (0)