Skip to content

Commit f6934a3

Browse files
committed
feat: add DUser component stories with reactive service integration
1 parent 3f480a8 commit f6934a3

File tree

1 file changed

+161
-0
lines changed

1 file changed

+161
-0
lines changed
Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
import {Meta} from "@storybook/react-vite";
2+
import {DUserReactiveService} from "./DUser.service";
3+
import {
4+
UsersEmailVerificationInput,
5+
UsersEmailVerificationPayload,
6+
UsersIdentityLinkInput,
7+
UsersIdentityLinkPayload,
8+
UsersIdentityLoginInput,
9+
UsersIdentityLoginPayload,
10+
UsersIdentityRegisterInput,
11+
UsersIdentityRegisterPayload,
12+
UsersIdentityUnlinkInput,
13+
UsersIdentityUnlinkPayload,
14+
UsersLoginInput,
15+
UsersLoginPayload,
16+
UsersLogoutInput,
17+
UsersLogoutPayload,
18+
UsersMfaBackupCodesRotateInput,
19+
UsersMfaBackupCodesRotatePayload,
20+
UsersMfaTotpGenerateSecretInput,
21+
UsersMfaTotpGenerateSecretPayload,
22+
UsersMfaTotpValidateSecretInput,
23+
UsersMfaTotpValidateSecretPayload,
24+
UsersPasswordResetInput,
25+
UsersPasswordResetPayload,
26+
UsersPasswordResetRequestInput,
27+
UsersPasswordResetRequestPayload,
28+
UsersRegisterInput,
29+
UsersRegisterPayload
30+
} from "@code0-tech/sagittarius-graphql-types";
31+
import {ContextStoreProvider, useReactiveArrayService} from "../../utils";
32+
import {DUserView} from "./DUser.view";
33+
import React from "react";
34+
import {DUserInput} from "./DUserInput";
35+
import {Text} from "../text/Text";
36+
import {Badge} from "../badge/Badge";
37+
import {IconArrowDown, IconArrowUp, IconCornerDownLeft} from "@tabler/icons-react";
38+
import {Spacing} from "../spacing/Spacing";
39+
import {Flex} from "../flex/Flex";
40+
41+
const meta: Meta = {
42+
title: "DUser",
43+
component: DUserInput
44+
}
45+
46+
export default meta
47+
48+
class DUserReactiveServiceExtended extends DUserReactiveService {
49+
usersEmailVerification(payload: UsersEmailVerificationInput): Promise<UsersEmailVerificationPayload | undefined> {
50+
return Promise.resolve(undefined);
51+
}
52+
53+
usersIdentityLink(payload: UsersIdentityLinkInput): Promise<UsersIdentityLinkPayload | undefined> {
54+
return Promise.resolve(undefined);
55+
}
56+
57+
usersIdentityLogin(payload: UsersIdentityLoginInput): Promise<UsersIdentityLoginPayload | undefined> {
58+
return Promise.resolve(undefined);
59+
}
60+
61+
usersIdentityRegister(payload: UsersIdentityRegisterInput): Promise<UsersIdentityRegisterPayload | undefined> {
62+
return Promise.resolve(undefined);
63+
}
64+
65+
usersIdentityUnlink(payload: UsersIdentityUnlinkInput): Promise<UsersIdentityUnlinkPayload | undefined> {
66+
return Promise.resolve(undefined);
67+
}
68+
69+
usersLogin(payload: UsersLoginInput): Promise<UsersLoginPayload | undefined> {
70+
return Promise.resolve(undefined);
71+
}
72+
73+
usersLogout(payload: UsersLogoutInput): Promise<UsersLogoutPayload | undefined> {
74+
return Promise.resolve(undefined);
75+
}
76+
77+
usersMfaBackupCodesRotate(payload: UsersMfaBackupCodesRotateInput): Promise<UsersMfaBackupCodesRotatePayload | undefined> {
78+
return Promise.resolve(undefined);
79+
}
80+
81+
usersMfaTotpGenerateSecret(payload: UsersMfaTotpGenerateSecretInput): Promise<UsersMfaTotpGenerateSecretPayload | undefined> {
82+
return Promise.resolve(undefined);
83+
}
84+
85+
usersMfaTotpValidateSecret(payload: UsersMfaTotpValidateSecretInput): Promise<UsersMfaTotpValidateSecretPayload | undefined> {
86+
return Promise.resolve(undefined);
87+
}
88+
89+
usersPasswordReset(payload: UsersPasswordResetInput): Promise<UsersPasswordResetPayload | undefined> {
90+
return Promise.resolve(undefined);
91+
}
92+
93+
usersPasswordResetRequest(payload: UsersPasswordResetRequestInput): Promise<UsersPasswordResetRequestPayload | undefined> {
94+
return Promise.resolve(undefined);
95+
}
96+
97+
usersRegister(payload: UsersRegisterInput): Promise<UsersRegisterPayload | undefined> {
98+
return Promise.resolve(undefined);
99+
}
100+
}
101+
102+
103+
export const Input = () => {
104+
105+
const user = useReactiveArrayService<DUserView, DUserReactiveServiceExtended>(DUserReactiveServiceExtended, [
106+
new DUserView({
107+
id: "gid://sagittarius/User/1",
108+
username: "exampleuser",
109+
email: "test@gmail.com",
110+
admin: undefined,
111+
avatarPath: "",
112+
firstname: undefined,
113+
lastname: undefined,
114+
namespace: undefined,
115+
namespaceMemberships: undefined,
116+
createdAt: new Date().toString(),
117+
updatedAt: new Date().toString(),
118+
}),
119+
new DUserView({
120+
id: "gid://sagittarius/User/1",
121+
username: "nsammito",
122+
email: "test@gmail.com",
123+
admin: undefined,
124+
avatarPath: "",
125+
firstname: undefined,
126+
lastname: undefined,
127+
namespace: undefined,
128+
namespaceMemberships: undefined,
129+
createdAt: new Date().toString(),
130+
updatedAt: new Date().toString(),
131+
})
132+
])
133+
134+
return <ContextStoreProvider services={[user]}>
135+
<DUserInput title={"Users to invite"} description={"Invite users to your workspace or organization"}/>
136+
<Spacing spacing={"xs"}/>
137+
<Text>
138+
<Flex align={"center"} style={{gap: "0.7rem"}}>
139+
<div>
140+
<Badge border>
141+
<IconArrowUp size={16}/>
142+
</Badge>
143+
{" "}
144+
<Badge border>
145+
<IconArrowDown size={16}/>
146+
</Badge>
147+
{" "}
148+
to navigate
149+
</div>
150+
<div>
151+
<Badge border>
152+
<IconCornerDownLeft size={16}/>
153+
</Badge>
154+
{" "}
155+
to select
156+
</div>
157+
</Flex>
158+
</Text>
159+
</ContextStoreProvider>
160+
161+
}

0 commit comments

Comments
 (0)