Skip to content

Commit 2634920

Browse files
authored
Merge pull request #20 from code0-tech/feat/#7
All views and pages on the instance level
2 parents e392b17 + 2bc377b commit 2634920

File tree

86 files changed

+1929
-267
lines changed

Some content is hidden

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

86 files changed

+1929
-267
lines changed

package-lock.json

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
},
1616
"dependencies": {
1717
"@apollo/client": "^4.0.9",
18-
"@code0-tech/pictor": "^0.0.0-mvp.14",
18+
"@code0-tech/pictor": "^0.0.0-mvp.21",
1919
"graphql": "^16.12.0",
2020
"graphql-tag": "^2.12.6",
2121
"next": "16.0.1",

public/CodeZero_App_MVP.png

119 KB
Loading

public/CodeZero_Banner_MVP.png

144 KB
Loading

src/app/(auth)/layout.tsx

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,17 @@
11
"use client"
22

3-
import {
4-
Col,
5-
Container,
6-
ContextStoreProvider,
7-
DFullScreen,
8-
DUserView,
9-
Flex,
10-
Text,
11-
useReactiveArrayService
12-
} from "@code0-tech/pictor";
13-
import {UserService} from "@core/user/User.service";
3+
import {Col, Container, ContextStoreProvider, DFullScreen, DUserView, Flex, Text} from "@code0-tech/pictor";
4+
import {UserService} from "@edition/user/User.service";
145
import {useApolloClient} from "@apollo/client/react";
156
import {GraphqlClient} from "@core/util/graphql-client";
167
import Image from "next/image";
178
import React from "react";
9+
import {usePersistentReactiveArrayService} from "@/hooks/usePersistentReactiveArrayService";
1810

1911
export default function AuthLayout({children}: Readonly<{ children: React.ReactNode }>) {
2012

2113
const client = useApolloClient()
22-
const [store, service] = useReactiveArrayService<DUserView, UserService>((store) => new UserService(new GraphqlClient(client), store))
14+
const [store, service] = usePersistentReactiveArrayService<DUserView, UserService>("auth-users", (store) => new UserService(new GraphqlClient(client), store))
2315

2416
return (
2517
<DFullScreen>
@@ -48,7 +40,7 @@ export default function AuthLayout({children}: Readonly<{ children: React.ReactN
4840
gap: "1.3rem"
4941
}}>
5042
<Text>All rights reserved &copy; Code0 UG (haftungsbeschränkt)</Text>
51-
<Image src={"/CodeZero_Banner_Transparent.png"} alt={"CodeZero Banner"} width={150} height={0}
43+
<Image src={"/CodeZero_Banner_MVP.png"} alt={"CodeZero Banner"} width={150} height={0}
5244
style={{width: '150px', height: 'auto'}}/>
5345
</div>
5446
</div>

src/app/(dashboard)/@bar/default.tsx

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,23 @@
33
import {
44
Badge,
55
Breadcrumb,
6-
Button, Container,
6+
Button,
7+
Container,
78
Flex,
89
MenuItem,
910
MenuSeparator,
1011
Text,
11-
TextInput, useService,
12+
TextInput,
13+
useService,
1214
useUserSession
1315
} from "@code0-tech/pictor";
1416
import DUserMenu from "@code0-tech/pictor/dist/components/d-user/DUserMenu";
1517
import {IconBuilding, IconInbox, IconLogout, IconSearch, IconSettings} from "@tabler/icons-react";
1618
import React from "react";
1719
import Image from "next/image";
18-
import {UserService} from "@core/user/User.service";
20+
import {UserService} from "@edition/user/User.service";
1921
import {useRouter} from "next/navigation";
22+
import Link from "next/link";
2023

2124
const Page = () => {
2225

@@ -44,12 +47,11 @@ const Page = () => {
4447
}
4548

4649
return <DUserMenu userId={currentSession.user?.id!!}>
47-
<MenuItem>
48-
<IconBuilding size={16}/>Organizations
49-
</MenuItem>
50-
<MenuItem>
51-
<IconSettings size={16}/>Settings
52-
</MenuItem>
50+
<Link href={"/organizations"}>
51+
<MenuItem>
52+
<IconBuilding size={16}/>Organizations
53+
</MenuItem>
54+
</Link>
5355
<MenuSeparator/>
5456
<MenuItem onSelect={userLogout}>
5557
<IconLogout size={16}/>Logout
@@ -61,7 +63,7 @@ const Page = () => {
6163
<Flex style={{gap: "0.7rem", flexDirection: "column"}} py={0.7} w={"100%"}>
6264
<Flex align={"center"} justify={"space-between"}>
6365
<Flex align={"center"} style={{gap: "1.3rem"}}>
64-
<Image src={"/CodeZero_App_Background_Colorful.png"} alt={"CodeZero Banner"} width={160} height={0}
66+
<Image src={"/CodeZero_App_MVP.png"} alt={"CodeZero Banner"} width={160} height={0}
6567
style={{width: '42px', height: 'auto'}}/>
6668
<Breadcrumb>
6769
<Text>Application</Text>
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
"use client"
2+
13
export default function Page() {
24
return null
35
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
"use client"
2+
3+
import React from "react";
4+
import {ApplicationTabView} from "@edition/dashboard/application/ApplicationTabView";
5+
6+
const Page: React.FC = () => {
7+
return <ApplicationTabView/>
8+
}
9+
10+
export default Page

src/app/(dashboard)/layout.tsx

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,22 @@ import {
66
Container,
77
ContextStoreProvider,
88
DLayout,
9+
DNamespaceMemberView, DNamespaceProjectView,
10+
DNamespaceView,
11+
DOrganizationView, DRuntimeView,
912
DUserView,
10-
useReactiveArrayService,
13+
ReactiveArrayStore,
1114
useUserSession
1215
} from "@code0-tech/pictor";
13-
import {UserService} from "@core/user/User.service";
16+
import {UserService} from "@edition/user/User.service";
1417
import {GraphqlClient} from "@core/util/graphql-client";
1518
import {useRouter} from "next/navigation";
19+
import {OrganizationService} from "@edition/organization/Organization.service";
20+
import {MemberService} from "@edition/member/Member.service";
21+
import {NamespaceService} from "@edition/namespace/Namespace.service";
22+
import {usePersistentReactiveArrayService} from "@/hooks/usePersistentReactiveArrayService";
23+
import {RuntimeService} from "@edition/runtime/Runtime.service";
24+
import {ProjectService} from "@edition/project/Project.service";
1625

1726
interface ApplicationLayoutProps {
1827
children: React.ReactNode
@@ -23,22 +32,30 @@ interface ApplicationLayoutProps {
2332
const ApplicationLayout: React.FC<ApplicationLayoutProps> = ({children, bar, tab}) => {
2433

2534
const client = useApolloClient()
26-
const [store, service] = useReactiveArrayService<DUserView, UserService>((store) => new UserService(new GraphqlClient(client), store))
2735
const router = useRouter()
2836
const currentSession = useUserSession()
2937

38+
const graphqlClient = React.useMemo(() => new GraphqlClient(client), [client])
39+
40+
const user = usePersistentReactiveArrayService<DUserView, UserService>(`dashboard::users::${currentSession?.id}`, (store: ReactiveArrayStore<DUserView>) => new UserService(graphqlClient, store))
41+
const organization = usePersistentReactiveArrayService<DOrganizationView, OrganizationService>(`dashboard::organizations::${currentSession?.id}`, (store: ReactiveArrayStore<DOrganizationView>) => new OrganizationService(graphqlClient, store))
42+
const member = usePersistentReactiveArrayService<DNamespaceMemberView, MemberService>(`dashboard::members::${currentSession?.id}`, (store: ReactiveArrayStore<DNamespaceMemberView>) => new MemberService(graphqlClient, store))
43+
const namespace = usePersistentReactiveArrayService<DNamespaceView, NamespaceService>(`dashboard::namespaces::${currentSession?.id}`, (store: ReactiveArrayStore<DNamespaceView>) => new NamespaceService(graphqlClient, store))
44+
const runtime = usePersistentReactiveArrayService<DRuntimeView, RuntimeService>(`dashboard::global_runtimes::${currentSession?.id}`, (store: ReactiveArrayStore<DRuntimeView>) => new RuntimeService(graphqlClient, store))
45+
const project = usePersistentReactiveArrayService<DNamespaceProjectView, ProjectService>(`dashboard::projects::${currentSession?.id}`, (store: ReactiveArrayStore<DNamespaceProjectView>) => new ProjectService(graphqlClient, store))
46+
3047
if (currentSession === null) router.push("/login")
3148

32-
return <ContextStoreProvider services={[[store, service]]}>
33-
<DLayout topContent={
49+
return <ContextStoreProvider services={[user, organization, member, namespace, runtime, project]}>
50+
<DLayout style={{zIndex: 0}} topContent={
3451
<>
3552
<div style={{background: "rgba(255,2552,255,.1)", borderBottom: "1px solid rgba(255,2552,255,.1)"}}>
3653
{bar}
3754
{tab}
3855
</div>
3956
</>
4057
}>
41-
<Container>
58+
<Container h={"100%"} w={"100%"}>
4259
{children}
4360
</Container>
4461
</DLayout>

src/app/(dashboard)/namespace/[namespaceId]/layout.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ interface NamespaceLayoutProps {
66
}
77

88
const NamespaceLayout: React.FC<NamespaceLayoutProps> = ({children}) => {
9-
return <div>
10-
{children}
11-
</div>
9+
return children
1210
}
1311

1412
export default NamespaceLayout

0 commit comments

Comments
 (0)