@idealyst/cli 1.0.88 → 1.0.90
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/dist/generators/index.js +3 -40
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/init.js +273 -0
- package/dist/generators/init.js.map +1 -0
- package/dist/generators/utils.js +5 -0
- package/dist/generators/utils.js.map +1 -1
- package/dist/index.js +20 -202
- package/dist/index.js.map +1 -1
- package/dist/scripts/configure-react-native-monorepo.js +144 -0
- package/dist/scripts/configure-react-native-monorepo.js.map +1 -0
- package/dist/{templates/workspace → template}/README.md +66 -12
- package/dist/template/package.json +45 -0
- package/{templates → dist/template/packages}/api/package.json +3 -1
- package/{templates → dist/template/packages}/database/package.json +1 -1
- package/dist/{templates/native → template/packages/mobile}/babel.config.js +1 -0
- package/{templates/native → dist/template/packages/mobile}/metro.config.js +4 -4
- package/{templates/native → dist/template/packages/mobile}/package.json +5 -2
- package/{templates → dist/template/packages}/shared/package.json +2 -2
- package/{templates → dist/template/packages}/web/package.json +4 -1
- package/dist/types/generators/index.d.ts +1 -7
- package/dist/types/generators/init.d.ts +5 -0
- package/dist/types/scripts/configure-react-native-monorepo.d.ts +23 -0
- package/dist/types/types.d.ts +0 -4
- package/package.json +1 -1
- package/dist/generators/api.js +0 -31
- package/dist/generators/api.js.map +0 -1
- package/dist/generators/database.js +0 -31
- package/dist/generators/database.js.map +0 -1
- package/dist/generators/fullstack.js +0 -418
- package/dist/generators/fullstack.js.map +0 -1
- package/dist/generators/native.js +0 -112
- package/dist/generators/native.js.map +0 -1
- package/dist/generators/shared.js +0 -29
- package/dist/generators/shared.js.map +0 -1
- package/dist/generators/web.js +0 -45
- package/dist/generators/web.js.map +0 -1
- package/dist/generators/workspace.js +0 -83
- package/dist/generators/workspace.js.map +0 -1
- package/dist/templates/api/package.json +0 -54
- package/dist/templates/database/package.json +0 -49
- package/dist/templates/native/metro.config.js +0 -27
- package/dist/templates/native/package.json +0 -49
- package/dist/templates/native/src/App.tsx +0 -8
- package/dist/templates/shared/package.json +0 -62
- package/dist/templates/shared/src/components/App.tsx +0 -47
- package/dist/templates/shared/src/components/HelloWorld.tsx +0 -307
- package/dist/templates/shared/src/navigation/AppRouter.tsx +0 -98
- package/dist/templates/web/package.json +0 -66
- package/dist/templates/web/src/App.tsx +0 -14
- package/dist/templates/workspace/package.json +0 -35
- package/dist/types/generators/api.d.ts +0 -2
- package/dist/types/generators/database.d.ts +0 -2
- package/dist/types/generators/fullstack.d.ts +0 -2
- package/dist/types/generators/native.d.ts +0 -2
- package/dist/types/generators/shared.d.ts +0 -2
- package/dist/types/generators/web.d.ts +0 -2
- package/dist/types/generators/workspace.d.ts +0 -2
- package/templates/api/.env.example +0 -6
- package/templates/api/README.md +0 -274
- package/templates/api/__tests__/api.test.ts +0 -26
- package/templates/api/jest.config.js +0 -23
- package/templates/api/jest.setup.js +0 -9
- package/templates/api/src/context.ts +0 -19
- package/templates/api/src/controllers/TestController.ts +0 -0
- package/templates/api/src/index.ts +0 -9
- package/templates/api/src/lib/crud.ts +0 -150
- package/templates/api/src/lib/database.ts +0 -23
- package/templates/api/src/router/index.ts +0 -163
- package/templates/api/src/routers/test.ts +0 -59
- package/templates/api/src/routers/user.example.ts +0 -83
- package/templates/api/src/server.ts +0 -50
- package/templates/api/src/trpc.ts +0 -28
- package/templates/api/tsconfig.json +0 -43
- package/templates/database/README.md +0 -162
- package/templates/database/prisma/seed.ts +0 -64
- package/templates/database/schema.prisma +0 -107
- package/templates/database/src/index.ts +0 -15
- package/templates/database/src/validators.ts +0 -10
- package/templates/database/tsconfig.json +0 -18
- package/templates/native/README.md +0 -86
- package/templates/native/__tests__/App.test.tsx +0 -156
- package/templates/native/__tests__/components.test.tsx +0 -300
- package/templates/native/app.json +0 -5
- package/templates/native/babel.config.js +0 -10
- package/templates/native/index.js +0 -6
- package/templates/native/jest.config.js +0 -21
- package/templates/native/jest.setup.js +0 -12
- package/templates/native/src/App-with-trpc.tsx +0 -30
- package/templates/native/src/App.tsx +0 -8
- package/templates/native/src/utils/trpc.ts +0 -7
- package/templates/native/tsconfig.json +0 -28
- package/templates/shared/README.md +0 -135
- package/templates/shared/__tests__/shared.test.ts +0 -51
- package/templates/shared/jest.config.js +0 -22
- package/templates/shared/src/components/index.ts +0 -1
- package/templates/shared/src/index.ts +0 -14
- package/templates/shared/src/trpc/client.ts +0 -44
- package/templates/shared/tsconfig.json +0 -22
- package/templates/web/README.md +0 -131
- package/templates/web/__tests__/App.test.tsx +0 -342
- package/templates/web/__tests__/components.test.tsx +0 -564
- package/templates/web/index.html +0 -13
- package/templates/web/jest.config.js +0 -27
- package/templates/web/jest.setup.js +0 -24
- package/templates/web/src/App-with-trpc.tsx +0 -32
- package/templates/web/src/App.tsx +0 -14
- package/templates/web/src/components/TestDemo.tsx +0 -164
- package/templates/web/src/main.tsx +0 -25
- package/templates/web/src/utils/trpc.ts +0 -7
- package/templates/web/tsconfig.json +0 -26
- package/templates/web/vite.config.ts +0 -98
- package/templates/workspace/.devcontainer/Dockerfile +0 -26
- package/templates/workspace/.devcontainer/devcontainer.json +0 -113
- package/templates/workspace/.devcontainer/docker-compose.yml +0 -59
- package/templates/workspace/.devcontainer/figma-mcp.sh +0 -32
- package/templates/workspace/.devcontainer/setup.sh +0 -45
- package/templates/workspace/.dockerignore +0 -151
- package/templates/workspace/.env.example +0 -36
- package/templates/workspace/.env.production +0 -56
- package/templates/workspace/DOCKER.md +0 -0
- package/templates/workspace/Dockerfile +0 -111
- package/templates/workspace/README.md +0 -179
- package/templates/workspace/docker/nginx/prod.conf +0 -238
- package/templates/workspace/docker/nginx.conf +0 -131
- package/templates/workspace/docker/postgres/init.sql +0 -41
- package/templates/workspace/docker/prometheus/prometheus.yml +0 -52
- package/templates/workspace/docker-compose.prod.yml +0 -146
- package/templates/workspace/docker-compose.yml +0 -143
- package/templates/workspace/jest.config.js +0 -20
- package/templates/workspace/package.json +0 -38
- package/templates/workspace/setup.sh +0 -30
- package/templates/workspace/tsconfig.json +0 -31
- /package/dist/{templates/workspace → template}/.devcontainer/Dockerfile +0 -0
- /package/dist/{templates/workspace → template}/.devcontainer/devcontainer.json +0 -0
- /package/dist/{templates/workspace → template}/.devcontainer/docker-compose.yml +0 -0
- /package/dist/{templates/workspace → template}/.devcontainer/figma-mcp.sh +0 -0
- /package/dist/{templates/workspace → template}/.devcontainer/setup.sh +0 -0
- /package/dist/{templates/workspace → template}/.dockerignore +0 -0
- /package/dist/{templates/workspace → template}/.env.example +0 -0
- /package/dist/{templates/workspace → template}/DOCKER.md +0 -0
- /package/dist/{templates/workspace → template}/Dockerfile +0 -0
- /package/dist/{templates/workspace → template}/docker/nginx/prod.conf +0 -0
- /package/dist/{templates/workspace → template}/docker/nginx.conf +0 -0
- /package/dist/{templates/workspace → template}/docker/postgres/init.sql +0 -0
- /package/dist/{templates/workspace → template}/docker/prometheus/prometheus.yml +0 -0
- /package/dist/{templates/workspace → template}/docker-compose.prod.yml +0 -0
- /package/dist/{templates/workspace → template}/docker-compose.yml +0 -0
- /package/dist/{templates/workspace → template}/jest.config.js +0 -0
- /package/dist/{templates → template/packages}/api/.env.example +0 -0
- /package/dist/{templates → template/packages}/api/README.md +0 -0
- /package/dist/{templates → template/packages}/api/__tests__/api.test.ts +0 -0
- /package/dist/{templates → template/packages}/api/jest.config.js +0 -0
- /package/dist/{templates → template/packages}/api/jest.setup.js +0 -0
- /package/dist/{templates → template/packages}/api/src/context.ts +0 -0
- /package/dist/{templates → template/packages}/api/src/controllers/TestController.ts +0 -0
- /package/dist/{templates → template/packages}/api/src/index.ts +0 -0
- /package/dist/{templates → template/packages}/api/src/lib/crud.ts +0 -0
- /package/dist/{templates → template/packages}/api/src/lib/database.ts +0 -0
- /package/dist/{templates → template/packages}/api/src/router/index.ts +0 -0
- /package/dist/{templates → template/packages}/api/src/routers/test.ts +0 -0
- /package/dist/{templates → template/packages}/api/src/routers/user.example.ts +0 -0
- /package/dist/{templates → template/packages}/api/src/server.ts +0 -0
- /package/dist/{templates → template/packages}/api/src/trpc.ts +0 -0
- /package/dist/{templates → template/packages}/api/tsconfig.json +0 -0
- /package/dist/{templates → template/packages}/database/README.md +0 -0
- /package/dist/{templates → template/packages}/database/prisma/seed.ts +0 -0
- /package/dist/{templates → template/packages}/database/schema.prisma +0 -0
- /package/dist/{templates → template/packages}/database/src/index.ts +0 -0
- /package/dist/{templates → template/packages}/database/src/validators.ts +0 -0
- /package/dist/{templates → template/packages}/database/tsconfig.json +0 -0
- /package/dist/{templates/native → template/packages/mobile}/README.md +0 -0
- /package/dist/{templates/native → template/packages/mobile}/__tests__/App.test.tsx +0 -0
- /package/dist/{templates/native → template/packages/mobile}/__tests__/components.test.tsx +0 -0
- /package/dist/{templates/native → template/packages/mobile}/app.json +0 -0
- /package/dist/{templates/native → template/packages/mobile}/index.js +0 -0
- /package/dist/{templates/native → template/packages/mobile}/jest.config.js +0 -0
- /package/dist/{templates/native → template/packages/mobile}/jest.setup.js +0 -0
- /package/dist/{templates/native → template/packages/mobile}/src/App-with-trpc-and-shared.tsx +0 -0
- /package/dist/{templates/native → template/packages/mobile}/src/App-with-trpc.tsx +0 -0
- /package/{templates/native/src/App-with-trpc-and-shared.tsx → dist/template/packages/mobile/src/App.tsx} +0 -0
- /package/dist/{templates/native → template/packages/mobile}/src/utils/trpc.ts +0 -0
- /package/dist/{templates/native → template/packages/mobile}/tsconfig.json +0 -0
- /package/dist/{templates → template/packages}/shared/README.md +0 -0
- /package/dist/{templates → template/packages}/shared/__tests__/shared.test.ts +0 -0
- /package/dist/{templates → template/packages}/shared/jest.config.js +0 -0
- /package/{templates → dist/template/packages}/shared/src/components/App.tsx +0 -0
- /package/{templates → dist/template/packages}/shared/src/components/HelloWorld.tsx +0 -0
- /package/dist/{templates → template/packages}/shared/src/components/index.ts +0 -0
- /package/dist/{templates → template/packages}/shared/src/index.ts +0 -0
- /package/{templates → dist/template/packages}/shared/src/navigation/AppRouter.tsx +0 -0
- /package/dist/{templates → template/packages}/shared/src/trpc/client.ts +0 -0
- /package/dist/{templates → template/packages}/shared/tsconfig.json +0 -0
- /package/dist/{templates → template/packages}/web/README.md +0 -0
- /package/dist/{templates → template/packages}/web/__tests__/App.test.tsx +0 -0
- /package/dist/{templates → template/packages}/web/__tests__/components.test.tsx +0 -0
- /package/dist/{templates → template/packages}/web/index.html +0 -0
- /package/dist/{templates → template/packages}/web/jest.config.js +0 -0
- /package/dist/{templates → template/packages}/web/jest.setup.js +0 -0
- /package/dist/{templates → template/packages}/web/src/App-with-trpc-and-shared.tsx +0 -0
- /package/dist/{templates → template/packages}/web/src/App-with-trpc.tsx +0 -0
- /package/{templates/web/src/App-with-trpc-and-shared.tsx → dist/template/packages/web/src/App.tsx} +0 -0
- /package/dist/{templates → template/packages}/web/src/components/TestDemo.tsx +0 -0
- /package/dist/{templates → template/packages}/web/src/main.tsx +0 -0
- /package/dist/{templates → template/packages}/web/src/utils/trpc.ts +0 -0
- /package/dist/{templates → template/packages}/web/tsconfig.json +0 -0
- /package/dist/{templates → template/packages}/web/vite.config.ts +0 -0
- /package/dist/{templates/workspace → template}/setup.sh +0 -0
- /package/dist/{templates/workspace → template}/tsconfig.json +0 -0
|
@@ -1,307 +0,0 @@
|
|
|
1
|
-
import { Button, Card, Input, Screen, Text, View } from "@idealyst/components";
|
|
2
|
-
import { useState } from "react";
|
|
3
|
-
import { trpc } from "../trpc/client";
|
|
4
|
-
|
|
5
|
-
interface HelloWorldProps {
|
|
6
|
-
name?: string;
|
|
7
|
-
platform?: "web" | "mobile";
|
|
8
|
-
projectName?: string;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export const HelloWorld = ({
|
|
12
|
-
name = "World",
|
|
13
|
-
platform = "web",
|
|
14
|
-
projectName = "Your Project",
|
|
15
|
-
}: HelloWorldProps) => {
|
|
16
|
-
const [newTestName, setNewTestName] = useState("");
|
|
17
|
-
const [newTestMessage, setNewTestMessage] = useState("");
|
|
18
|
-
|
|
19
|
-
// Use tRPC hooks directly
|
|
20
|
-
const tests = trpc.test.getAll.useQuery({});
|
|
21
|
-
const createTestMutation = trpc.test.create.useMutation({
|
|
22
|
-
onSuccess: () => {
|
|
23
|
-
tests.refetch();
|
|
24
|
-
setNewTestName("");
|
|
25
|
-
setNewTestMessage("");
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
|
-
const deleteTestMutation = trpc.test.delete.useMutation({
|
|
29
|
-
onSuccess: () => {
|
|
30
|
-
tests.refetch();
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
const handleCreateTest = async () => {
|
|
35
|
-
if (!newTestName || !newTestMessage) return;
|
|
36
|
-
|
|
37
|
-
await createTestMutation.mutateAsync({
|
|
38
|
-
name: newTestName,
|
|
39
|
-
message: newTestMessage,
|
|
40
|
-
status: "active",
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
const handleDeleteTest = async (id: string) => {
|
|
45
|
-
await deleteTestMutation.mutateAsync({ id });
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
const platformEmoji = platform === "mobile" ? "📱" : "🌐";
|
|
49
|
-
const platformText =
|
|
50
|
-
platform === "mobile"
|
|
51
|
-
? "Your mobile development environment is ready. This shared component works seamlessly across mobile and web platforms."
|
|
52
|
-
: "Your web development environment is ready. This shared component works seamlessly across web and mobile platforms.";
|
|
53
|
-
|
|
54
|
-
return (
|
|
55
|
-
<Screen style={{ flex: 1, padding: 20 }}>
|
|
56
|
-
<View style={{ maxWidth: 600, alignSelf: "center" }}>
|
|
57
|
-
<Text
|
|
58
|
-
size="xl"
|
|
59
|
-
weight="bold"
|
|
60
|
-
style={{
|
|
61
|
-
marginBottom: 16,
|
|
62
|
-
textAlign: "center",
|
|
63
|
-
color: "#1e293b",
|
|
64
|
-
}}
|
|
65
|
-
>
|
|
66
|
-
Welcome to {projectName}! {platformEmoji}
|
|
67
|
-
</Text>
|
|
68
|
-
|
|
69
|
-
<Text
|
|
70
|
-
size="lg"
|
|
71
|
-
style={{
|
|
72
|
-
marginBottom: 32,
|
|
73
|
-
textAlign: "center",
|
|
74
|
-
color: "#64748b",
|
|
75
|
-
lineHeight: 24,
|
|
76
|
-
paddingHorizontal: 16,
|
|
77
|
-
}}
|
|
78
|
-
>
|
|
79
|
-
{platformText}
|
|
80
|
-
</Text>
|
|
81
|
-
{/* Framework Branding Card */}
|
|
82
|
-
<Card variant="elevated" padding="lg" intent="primary">
|
|
83
|
-
<View style={{ alignItems: "center" }}>
|
|
84
|
-
<Text style={{ fontSize: 32, marginBottom: 16 }}>🚀</Text>
|
|
85
|
-
<Text
|
|
86
|
-
size="xl"
|
|
87
|
-
weight="bold"
|
|
88
|
-
style={{ marginBottom: 8, textAlign: "center" }}
|
|
89
|
-
>
|
|
90
|
-
Idealyst Framework
|
|
91
|
-
</Text>
|
|
92
|
-
<Text
|
|
93
|
-
size="md"
|
|
94
|
-
style={{ marginBottom: 16, textAlign: "center" }}
|
|
95
|
-
>
|
|
96
|
-
Hello, {name}! Welcome to your cross-platform workspace.
|
|
97
|
-
</Text>
|
|
98
|
-
|
|
99
|
-
{/* Technology Tags */}
|
|
100
|
-
<View
|
|
101
|
-
style={{
|
|
102
|
-
flexDirection: "row",
|
|
103
|
-
flexWrap: "wrap",
|
|
104
|
-
justifyContent: "center",
|
|
105
|
-
gap: 8,
|
|
106
|
-
}}
|
|
107
|
-
>
|
|
108
|
-
<Card
|
|
109
|
-
variant="filled"
|
|
110
|
-
padding="sm"
|
|
111
|
-
style={{ backgroundColor: "rgba(255, 255, 255, 0.2)" }}
|
|
112
|
-
>
|
|
113
|
-
<Text size="sm" weight="semibold">
|
|
114
|
-
React
|
|
115
|
-
</Text>
|
|
116
|
-
</Card>
|
|
117
|
-
<Card
|
|
118
|
-
variant="filled"
|
|
119
|
-
padding="sm"
|
|
120
|
-
style={{ backgroundColor: "rgba(255, 255, 255, 0.2)" }}
|
|
121
|
-
>
|
|
122
|
-
<Text size="sm" weight="semibold">
|
|
123
|
-
TypeScript
|
|
124
|
-
</Text>
|
|
125
|
-
</Card>
|
|
126
|
-
<Card
|
|
127
|
-
variant="filled"
|
|
128
|
-
padding="sm"
|
|
129
|
-
style={{ backgroundColor: "rgba(255, 255, 255, 0.2)" }}
|
|
130
|
-
>
|
|
131
|
-
<Text size="sm" weight="semibold">
|
|
132
|
-
Cross-Platform
|
|
133
|
-
</Text>
|
|
134
|
-
</Card>
|
|
135
|
-
</View>
|
|
136
|
-
</View>
|
|
137
|
-
</Card>
|
|
138
|
-
|
|
139
|
-
{/* Quick Start Guide Card */}
|
|
140
|
-
<Card variant="outlined" padding="lg" style={{ marginTop: 16 }}>
|
|
141
|
-
<Text size="lg" weight="bold" style={{ marginBottom: 16 }}>
|
|
142
|
-
🎯 Quick Start Guide
|
|
143
|
-
</Text>
|
|
144
|
-
|
|
145
|
-
<View style={{ marginBottom: 16 }}>
|
|
146
|
-
<Text size="md" weight="semibold" style={{ marginBottom: 8 }}>
|
|
147
|
-
Your Workspace Overview:
|
|
148
|
-
</Text>
|
|
149
|
-
<Text size="sm" style={{ marginBottom: 4 }}>
|
|
150
|
-
• <Text weight="semibold">packages/web/</Text> - React web
|
|
151
|
-
application
|
|
152
|
-
</Text>
|
|
153
|
-
<Text size="sm" style={{ marginBottom: 4 }}>
|
|
154
|
-
• <Text weight="semibold">packages/mobile/</Text> - React Native
|
|
155
|
-
mobile app
|
|
156
|
-
</Text>
|
|
157
|
-
<Text size="sm" style={{ marginBottom: 4 }}>
|
|
158
|
-
• <Text weight="semibold">packages/shared/</Text> - Cross-platform
|
|
159
|
-
components
|
|
160
|
-
</Text>
|
|
161
|
-
<Text size="sm" style={{ marginBottom: 4 }}>
|
|
162
|
-
• <Text weight="semibold">packages/api/</Text> - tRPC API server
|
|
163
|
-
</Text>
|
|
164
|
-
</View>
|
|
165
|
-
|
|
166
|
-
<View style={{ marginBottom: 16 }}>
|
|
167
|
-
<Text size="md" weight="semibold" style={{ marginBottom: 8 }}>
|
|
168
|
-
Try Editing:
|
|
169
|
-
</Text>
|
|
170
|
-
<Text size="sm" style={{ marginBottom: 4 }}>
|
|
171
|
-
1. Edit this component in{" "}
|
|
172
|
-
<Text weight="semibold">
|
|
173
|
-
packages/shared/src/components/HelloWorld.tsx
|
|
174
|
-
</Text>
|
|
175
|
-
</Text>
|
|
176
|
-
<Text size="sm" style={{ marginBottom: 4 }}>
|
|
177
|
-
2. Watch changes appear in both web and mobile apps instantly!
|
|
178
|
-
</Text>
|
|
179
|
-
<Text size="sm" style={{ marginBottom: 4 }}>
|
|
180
|
-
3. Run <Text weight="semibold">yarn dev</Text> to start all
|
|
181
|
-
development servers
|
|
182
|
-
</Text>
|
|
183
|
-
</View>
|
|
184
|
-
|
|
185
|
-
<Card variant="filled" intent="success" padding="md">
|
|
186
|
-
<Text size="sm" weight="semibold" style={{ marginBottom: 4 }}>
|
|
187
|
-
✨ Framework Features:
|
|
188
|
-
</Text>
|
|
189
|
-
<Text size="sm">
|
|
190
|
-
Shared components • Type safety • Hot reload • Cross-platform
|
|
191
|
-
compatibility
|
|
192
|
-
</Text>
|
|
193
|
-
</Card>
|
|
194
|
-
</Card>
|
|
195
|
-
|
|
196
|
-
{/* API Testing Section */}
|
|
197
|
-
<Card variant="outlined" padding="lg" style={{ marginTop: 16 }}>
|
|
198
|
-
<Text size="lg" weight="bold" style={{ marginBottom: 16 }}>
|
|
199
|
-
🚀 API Demo - Database Integration
|
|
200
|
-
</Text>
|
|
201
|
-
<Text size="md" style={{ marginBottom: 16, color: "#64748b" }}>
|
|
202
|
-
Test your full-stack integration! This section demonstrates
|
|
203
|
-
real-time database operations.
|
|
204
|
-
</Text>
|
|
205
|
-
|
|
206
|
-
{/* Create New Test Form */}
|
|
207
|
-
<Card
|
|
208
|
-
variant="filled"
|
|
209
|
-
padding="md"
|
|
210
|
-
style={{ marginBottom: 16, backgroundColor: "#f8fafc" }}
|
|
211
|
-
>
|
|
212
|
-
<Text size="md" weight="semibold" style={{ marginBottom: 12 }}>
|
|
213
|
-
Create New Test Entry
|
|
214
|
-
</Text>
|
|
215
|
-
|
|
216
|
-
<View style={{ gap: 12 }}>
|
|
217
|
-
<Input
|
|
218
|
-
placeholder="Test name"
|
|
219
|
-
value={newTestName}
|
|
220
|
-
onChangeText={setNewTestName}
|
|
221
|
-
/>
|
|
222
|
-
<Input
|
|
223
|
-
placeholder="Test message"
|
|
224
|
-
value={newTestMessage}
|
|
225
|
-
onChangeText={setNewTestMessage}
|
|
226
|
-
/>
|
|
227
|
-
<Button
|
|
228
|
-
onPress={handleCreateTest}
|
|
229
|
-
disabled={
|
|
230
|
-
!newTestName ||
|
|
231
|
-
!newTestMessage ||
|
|
232
|
-
createTestMutation.isLoading
|
|
233
|
-
}
|
|
234
|
-
style={{ alignSelf: "flex-start" }}
|
|
235
|
-
>
|
|
236
|
-
{createTestMutation.isLoading ? "Creating..." : "Create Test"}
|
|
237
|
-
</Button>
|
|
238
|
-
</View>
|
|
239
|
-
</Card>
|
|
240
|
-
|
|
241
|
-
{/* Tests List */}
|
|
242
|
-
<View>
|
|
243
|
-
<Text size="md" weight="semibold" style={{ marginBottom: 12 }}>
|
|
244
|
-
Database Records ({tests.data?.length || 0})
|
|
245
|
-
</Text>
|
|
246
|
-
|
|
247
|
-
{tests.isLoading ? (
|
|
248
|
-
<Card variant="outlined" padding="md">
|
|
249
|
-
<Text size="sm" style={{ color: "#64748b" }}>
|
|
250
|
-
Loading tests...
|
|
251
|
-
</Text>
|
|
252
|
-
</Card>
|
|
253
|
-
) : tests.data?.length === 0 ? (
|
|
254
|
-
<Card variant="outlined" padding="md">
|
|
255
|
-
<Text size="sm" style={{ color: "#64748b" }}>
|
|
256
|
-
No tests found. Create one above!
|
|
257
|
-
</Text>
|
|
258
|
-
</Card>
|
|
259
|
-
) : (
|
|
260
|
-
<View style={{ gap: 8 }}>
|
|
261
|
-
{tests.data?.map((test: any) => (
|
|
262
|
-
<Card key={test.id} variant="outlined" padding="md">
|
|
263
|
-
<View
|
|
264
|
-
style={{
|
|
265
|
-
flexDirection: "row",
|
|
266
|
-
justifyContent: "space-between",
|
|
267
|
-
alignItems: "center",
|
|
268
|
-
}}
|
|
269
|
-
>
|
|
270
|
-
<View style={{ flex: 1 }}>
|
|
271
|
-
<Text
|
|
272
|
-
size="sm"
|
|
273
|
-
weight="semibold"
|
|
274
|
-
style={{ marginBottom: 4 }}
|
|
275
|
-
>
|
|
276
|
-
{test.name}
|
|
277
|
-
</Text>
|
|
278
|
-
<Text
|
|
279
|
-
size="sm"
|
|
280
|
-
style={{ color: "#64748b", marginBottom: 4 }}
|
|
281
|
-
>
|
|
282
|
-
{test.message}
|
|
283
|
-
</Text>
|
|
284
|
-
<Text size="sm" style={{ color: "#10b981" }}>
|
|
285
|
-
Status: {test.status} •{" "}
|
|
286
|
-
{new Date(test.createdAt).toLocaleDateString()}
|
|
287
|
-
</Text>
|
|
288
|
-
</View>
|
|
289
|
-
<Button
|
|
290
|
-
variant="destructive"
|
|
291
|
-
size="sm"
|
|
292
|
-
onPress={() => handleDeleteTest(test.id)}
|
|
293
|
-
disabled={deleteTestMutation.isLoading}
|
|
294
|
-
>
|
|
295
|
-
Delete
|
|
296
|
-
</Button>
|
|
297
|
-
</View>
|
|
298
|
-
</Card>
|
|
299
|
-
))}
|
|
300
|
-
</View>
|
|
301
|
-
)}
|
|
302
|
-
</View>
|
|
303
|
-
</Card>
|
|
304
|
-
</View>
|
|
305
|
-
</Screen>
|
|
306
|
-
);
|
|
307
|
-
};
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { NavigatorParam } from '@idealyst/navigation';
|
|
3
|
-
import { Screen, Text, View, Icon } from '@idealyst/components';
|
|
4
|
-
import { HelloWorld } from '../components/HelloWorld';
|
|
5
|
-
|
|
6
|
-
const HomeScreen = () => (
|
|
7
|
-
<Screen>
|
|
8
|
-
<View spacing="lg">
|
|
9
|
-
<Text size="xl" weight="bold">Home</Text>
|
|
10
|
-
<Text size="md">Welcome to your {{projectName}} app!</Text>
|
|
11
|
-
<View spacing="md" style={{ marginTop: 24 }}>
|
|
12
|
-
<Text size="sm">
|
|
13
|
-
This app uses tab navigation. Navigate between tabs using the bottom bar on mobile or the top tabs on web.
|
|
14
|
-
</Text>
|
|
15
|
-
</View>
|
|
16
|
-
|
|
17
|
-
{/* API Testing Component */}
|
|
18
|
-
<View spacing="md" style={{ marginTop: 32 }}>
|
|
19
|
-
<Text size="md" weight="semibold">API Test</Text>
|
|
20
|
-
<HelloWorld name="{{projectName}}" />
|
|
21
|
-
</View>
|
|
22
|
-
</View>
|
|
23
|
-
</Screen>
|
|
24
|
-
);
|
|
25
|
-
|
|
26
|
-
const ProfileScreen = () => (
|
|
27
|
-
<Screen>
|
|
28
|
-
<View spacing="lg">
|
|
29
|
-
<Text size="xl" weight="bold">Profile</Text>
|
|
30
|
-
<Text size="md">User profile and account settings</Text>
|
|
31
|
-
<View spacing="md" style={{ marginTop: 24 }}>
|
|
32
|
-
<Text size="sm">
|
|
33
|
-
Manage your account details and preferences here.
|
|
34
|
-
</Text>
|
|
35
|
-
</View>
|
|
36
|
-
</View>
|
|
37
|
-
</Screen>
|
|
38
|
-
);
|
|
39
|
-
|
|
40
|
-
const SettingsScreen = () => (
|
|
41
|
-
<Screen>
|
|
42
|
-
<View spacing="lg">
|
|
43
|
-
<Text size="xl" weight="bold">Settings</Text>
|
|
44
|
-
<Text size="md">App configuration and preferences</Text>
|
|
45
|
-
<View spacing="md" style={{ marginTop: 24 }}>
|
|
46
|
-
<Text size="sm">
|
|
47
|
-
Customize your app experience with various settings and options.
|
|
48
|
-
</Text>
|
|
49
|
-
</View>
|
|
50
|
-
</View>
|
|
51
|
-
</Screen>
|
|
52
|
-
);
|
|
53
|
-
|
|
54
|
-
const AppRouter: NavigatorParam = {
|
|
55
|
-
type: 'navigator',
|
|
56
|
-
path: '/',
|
|
57
|
-
layout: 'tab',
|
|
58
|
-
routes: [
|
|
59
|
-
{
|
|
60
|
-
type: 'screen',
|
|
61
|
-
path: '/',
|
|
62
|
-
component: HomeScreen,
|
|
63
|
-
options: {
|
|
64
|
-
title: 'Home',
|
|
65
|
-
tabBarLabel: 'Home',
|
|
66
|
-
tabBarIcon: ({ focused, size }) => (
|
|
67
|
-
<Icon name="home" color={focused ? 'blue' : 'gray'} size={size || 24} />
|
|
68
|
-
),
|
|
69
|
-
},
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
type: 'screen',
|
|
73
|
-
path: '/profile',
|
|
74
|
-
component: ProfileScreen,
|
|
75
|
-
options: {
|
|
76
|
-
title: 'Profile',
|
|
77
|
-
tabBarLabel: 'Profile',
|
|
78
|
-
tabBarIcon: ({ focused, size }) => (
|
|
79
|
-
<Icon name="account" color={focused ? 'blue' : 'gray'} size={size || 24} />
|
|
80
|
-
),
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
type: 'screen',
|
|
85
|
-
path: '/settings',
|
|
86
|
-
component: SettingsScreen,
|
|
87
|
-
options: {
|
|
88
|
-
title: 'Settings',
|
|
89
|
-
tabBarLabel: 'Settings',
|
|
90
|
-
tabBarIcon: ({ focused, size }) => (
|
|
91
|
-
<Icon name="cog" color={focused ? 'blue' : 'gray'} size={size || 24} />
|
|
92
|
-
),
|
|
93
|
-
},
|
|
94
|
-
},
|
|
95
|
-
],
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
export default AppRouter;
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "{{packageName}}",
|
|
3
|
-
"version": "{{version}}",
|
|
4
|
-
"description": "{{description}}",
|
|
5
|
-
"private": true,
|
|
6
|
-
"type": "module",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"dev": "vite",
|
|
9
|
-
"build": "tsc && vite build",
|
|
10
|
-
"preview": "vite preview",
|
|
11
|
-
"test": "jest",
|
|
12
|
-
"test:watch": "jest --watch",
|
|
13
|
-
"test:coverage": "jest --coverage"
|
|
14
|
-
},
|
|
15
|
-
"dependencies": {
|
|
16
|
-
"@idealyst/components": "^{{idealystVersion}}",
|
|
17
|
-
"@idealyst/navigation": "^{{idealystVersion}}",
|
|
18
|
-
"@idealyst/theme": "^{{idealystVersion}}",
|
|
19
|
-
"@mdi/js": "^7.4.47",
|
|
20
|
-
"@mdi/react": "^1.6.1",
|
|
21
|
-
"@react-native/normalize-colors": "^0.80.1",
|
|
22
|
-
"@tanstack/react-query": "^5.83.0",
|
|
23
|
-
"@trpc/client": "^11.5.1",
|
|
24
|
-
"@trpc/react-query": "^11.5.1",
|
|
25
|
-
"@trpc/server": "^11.5.1",
|
|
26
|
-
"@types/react-router-dom": "^5.3.3",
|
|
27
|
-
"compression": "^1.7.4",
|
|
28
|
-
"express": "^4.18.2",
|
|
29
|
-
"react": "^19.1.0",
|
|
30
|
-
"react-dom": "^19.1.0",
|
|
31
|
-
"react-native": "^0.80.1",
|
|
32
|
-
"react-native-edge-to-edge": "^1.6.2",
|
|
33
|
-
"react-native-nitro-modules": "0.30.0",
|
|
34
|
-
"react-native-unistyles": "^3.0.10",
|
|
35
|
-
"react-native-web": "^0.20.0",
|
|
36
|
-
"react-router": "^7.6.3",
|
|
37
|
-
"react-router-dom": "^7.6.3",
|
|
38
|
-
"sirv": "^2.0.4"
|
|
39
|
-
},
|
|
40
|
-
"devDependencies": {
|
|
41
|
-
"@babel/core": "^7.28.0",
|
|
42
|
-
"@babel/preset-env": "^7.28.0",
|
|
43
|
-
"@babel/preset-react": "^7.27.1",
|
|
44
|
-
"@babel/preset-typescript": "^7.27.1",
|
|
45
|
-
"@testing-library/jest-dom": "^6.4.2",
|
|
46
|
-
"@testing-library/react": "^14.2.1",
|
|
47
|
-
"@testing-library/user-event": "^14.5.2",
|
|
48
|
-
"@types/compression": "^1.7.5",
|
|
49
|
-
"@types/express": "^4.17.21",
|
|
50
|
-
"@types/jest": "^29.5.12",
|
|
51
|
-
"@types/react": "^19.1.0",
|
|
52
|
-
"@types/react-dom": "^19.1.0",
|
|
53
|
-
"@typescript-eslint/eslint-plugin": "^7.2.0",
|
|
54
|
-
"@typescript-eslint/parser": "^7.2.0",
|
|
55
|
-
"@vitejs/plugin-react": "^4.6.0",
|
|
56
|
-
"eslint": "^8.57.0",
|
|
57
|
-
"eslint-plugin-react-hooks": "^4.6.0",
|
|
58
|
-
"eslint-plugin-react-refresh": "^0.4.6",
|
|
59
|
-
"jest": "^29.7.0",
|
|
60
|
-
"jest-environment-jsdom": "^29.7.0",
|
|
61
|
-
"ts-jest": "^29.1.2",
|
|
62
|
-
"typescript": "^5.2.2",
|
|
63
|
-
"vite": "^5.2.0",
|
|
64
|
-
"vite-plugin-babel": "^1.3.2"
|
|
65
|
-
}
|
|
66
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { BrowserRouter } from 'react-router-dom';
|
|
2
|
-
import { App } from '@{{workspaceScope}}/shared';
|
|
3
|
-
|
|
4
|
-
function WebApp() {
|
|
5
|
-
return (
|
|
6
|
-
<div className="App">
|
|
7
|
-
<BrowserRouter>
|
|
8
|
-
<App />
|
|
9
|
-
</BrowserRouter>
|
|
10
|
-
</div>
|
|
11
|
-
);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export default WebApp;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "{{packageName}}",
|
|
3
|
-
"version": "{{version}}",
|
|
4
|
-
"description": "{{description}}",
|
|
5
|
-
"private": true,
|
|
6
|
-
"workspaces": [
|
|
7
|
-
"packages/*"
|
|
8
|
-
],
|
|
9
|
-
"packageManager": "yarn@4.1.0",
|
|
10
|
-
"scripts": {
|
|
11
|
-
"test": "yarn workspaces foreach --include '@/*' run test",
|
|
12
|
-
"test:watch": "yarn workspaces foreach --include '@/*' run test:watch",
|
|
13
|
-
"test:coverage": "yarn workspaces foreach --include '@/*' run test:coverage",
|
|
14
|
-
"test:ci": "yarn workspaces foreach --include '@/*' --parallel run test --passWithNoTests",
|
|
15
|
-
"test:runner": "node scripts/test-runner.js",
|
|
16
|
-
"test:help": "node scripts/test-runner.js help",
|
|
17
|
-
"publish:all": "yarn workspaces foreach --include '@/*' npm publish",
|
|
18
|
-
"version:patch": "yarn workspaces foreach --include '@/*' version patch",
|
|
19
|
-
"version:minor": "yarn workspaces foreach --include '@/*' version minor",
|
|
20
|
-
"version:major": "yarn workspaces foreach --include '@/*' version major",
|
|
21
|
-
"build:all": "yarn workspaces foreach --include '@/*' run build",
|
|
22
|
-
"lint:all": "yarn workspaces foreach --include '@/*' run lint",
|
|
23
|
-
"type-check:all": "yarn workspaces foreach --include '@/*' run type-check"
|
|
24
|
-
},
|
|
25
|
-
"devDependencies": {
|
|
26
|
-
"@babel/core": "^7.28.0",
|
|
27
|
-
"@babel/preset-env": "^7.28.0",
|
|
28
|
-
"@babel/preset-react": "^7.27.1",
|
|
29
|
-
"@babel/preset-typescript": "^7.27.1",
|
|
30
|
-
"@types/jest": "^29.5.12",
|
|
31
|
-
"jest": "^29.7.0",
|
|
32
|
-
"ts-jest": "^29.1.2",
|
|
33
|
-
"typescript": "^5.0.0"
|
|
34
|
-
}
|
|
35
|
-
}
|