Skip to content

Commit 1d9448a

Browse files
authored
refactor: export AuthenticatorsContextProvider and add client.d.ts (nocobase#4311)
1 parent 98e5964 commit 1d9448a

File tree

5 files changed

+264
-7
lines changed

5 files changed

+264
-7
lines changed

.eslintignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,5 @@ docker
2929
storage
3030
benchmark
3131
packages/core/cli/src
32-
t.js
32+
t.js
33+
packages/**/client.d.ts
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,249 @@
1+
/**
2+
* This file is part of the NocoBase (R) project.
3+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
4+
* Authors: NocoBase Team.
5+
*
6+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7+
* For more information, please refer to: https://www.nocobase.com/agreement.
8+
*/
9+
10+
// CSS modules
11+
type CSSModuleClasses = { readonly [key: string]: string };
12+
13+
declare module '*.module.css' {
14+
const classes: CSSModuleClasses;
15+
export default classes;
16+
}
17+
declare module '*.module.scss' {
18+
const classes: CSSModuleClasses;
19+
export default classes;
20+
}
21+
declare module '*.module.sass' {
22+
const classes: CSSModuleClasses;
23+
export default classes;
24+
}
25+
declare module '*.module.less' {
26+
const classes: CSSModuleClasses;
27+
export default classes;
28+
}
29+
declare module '*.module.styl' {
30+
const classes: CSSModuleClasses;
31+
export default classes;
32+
}
33+
declare module '*.module.stylus' {
34+
const classes: CSSModuleClasses;
35+
export default classes;
36+
}
37+
declare module '*.module.pcss' {
38+
const classes: CSSModuleClasses;
39+
export default classes;
40+
}
41+
declare module '*.module.sss' {
42+
const classes: CSSModuleClasses;
43+
export default classes;
44+
}
45+
46+
// CSS
47+
declare module '*.css' { }
48+
declare module '*.scss' { }
49+
declare module '*.sass' { }
50+
declare module '*.less' { }
51+
declare module '*.styl' { }
52+
declare module '*.stylus' { }
53+
declare module '*.pcss' { }
54+
declare module '*.sss' { }
55+
56+
// Built-in asset types
57+
// see `src/node/constants.ts`
58+
59+
// images
60+
declare module '*.apng' {
61+
const src: string;
62+
export default src;
63+
}
64+
declare module '*.png' {
65+
const src: string;
66+
export default src;
67+
}
68+
declare module '*.jpg' {
69+
const src: string;
70+
export default src;
71+
}
72+
declare module '*.jpeg' {
73+
const src: string;
74+
export default src;
75+
}
76+
declare module '*.jfif' {
77+
const src: string;
78+
export default src;
79+
}
80+
declare module '*.pjpeg' {
81+
const src: string;
82+
export default src;
83+
}
84+
declare module '*.pjp' {
85+
const src: string;
86+
export default src;
87+
}
88+
declare module '*.gif' {
89+
const src: string;
90+
export default src;
91+
}
92+
declare module '*.svg' {
93+
const src: string;
94+
export default src;
95+
}
96+
declare module '*.ico' {
97+
const src: string;
98+
export default src;
99+
}
100+
declare module '*.webp' {
101+
const src: string;
102+
export default src;
103+
}
104+
declare module '*.avif' {
105+
const src: string;
106+
export default src;
107+
}
108+
109+
// media
110+
declare module '*.mp4' {
111+
const src: string;
112+
export default src;
113+
}
114+
declare module '*.webm' {
115+
const src: string;
116+
export default src;
117+
}
118+
declare module '*.ogg' {
119+
const src: string;
120+
export default src;
121+
}
122+
declare module '*.mp3' {
123+
const src: string;
124+
export default src;
125+
}
126+
declare module '*.wav' {
127+
const src: string;
128+
export default src;
129+
}
130+
declare module '*.flac' {
131+
const src: string;
132+
export default src;
133+
}
134+
declare module '*.aac' {
135+
const src: string;
136+
export default src;
137+
}
138+
declare module '*.opus' {
139+
const src: string;
140+
export default src;
141+
}
142+
declare module '*.mov' {
143+
const src: string;
144+
export default src;
145+
}
146+
declare module '*.m4a' {
147+
const src: string;
148+
export default src;
149+
}
150+
declare module '*.vtt' {
151+
const src: string;
152+
export default src;
153+
}
154+
155+
// fonts
156+
declare module '*.woff' {
157+
const src: string;
158+
export default src;
159+
}
160+
declare module '*.woff2' {
161+
const src: string;
162+
export default src;
163+
}
164+
declare module '*.eot' {
165+
const src: string;
166+
export default src;
167+
}
168+
declare module '*.ttf' {
169+
const src: string;
170+
export default src;
171+
}
172+
declare module '*.otf' {
173+
const src: string;
174+
export default src;
175+
}
176+
177+
// other
178+
declare module '*.webmanifest' {
179+
const src: string;
180+
export default src;
181+
}
182+
declare module '*.pdf' {
183+
const src: string;
184+
export default src;
185+
}
186+
declare module '*.txt' {
187+
const src: string;
188+
export default src;
189+
}
190+
191+
// wasm?init
192+
declare module '*.wasm?init' {
193+
const initWasm: (options?: WebAssembly.Imports) => Promise<WebAssembly.Instance>;
194+
export default initWasm;
195+
}
196+
197+
// web worker
198+
declare module '*?worker' {
199+
const workerConstructor: {
200+
new(options?: { name?: string }): Worker;
201+
};
202+
export default workerConstructor;
203+
}
204+
205+
declare module '*?worker&inline' {
206+
const workerConstructor: {
207+
new(options?: { name?: string }): Worker;
208+
};
209+
export default workerConstructor;
210+
}
211+
212+
declare module '*?worker&url' {
213+
const src: string;
214+
export default src;
215+
}
216+
217+
declare module '*?sharedworker' {
218+
const sharedWorkerConstructor: {
219+
new(options?: { name?: string }): SharedWorker;
220+
};
221+
export default sharedWorkerConstructor;
222+
}
223+
224+
declare module '*?sharedworker&inline' {
225+
const sharedWorkerConstructor: {
226+
new(options?: { name?: string }): SharedWorker;
227+
};
228+
export default sharedWorkerConstructor;
229+
}
230+
231+
declare module '*?sharedworker&url' {
232+
const src: string;
233+
export default src;
234+
}
235+
236+
declare module '*?raw' {
237+
const src: string;
238+
export default src;
239+
}
240+
241+
declare module '*?url' {
242+
const src: string;
243+
export default src;
244+
}
245+
246+
declare module '*?inline' {
247+
const src: string;
248+
export default src;
249+
}

packages/core/create-nocobase-app/templates/app/.eslintignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ packages/element
1313
esm
1414
doc-site
1515
public
16-
package
16+
package
17+
packages/**/client.d.ts

packages/plugins/@nocobase/plugin-auth/src/client/index.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { Options, SignInForm, SignUpForm } from './basic';
1717
import { NAMESPACE } from './locale';
1818
import { AuthLayout, SignInPage, SignUpPage } from './pages';
1919
import { Authenticator } from './settings/Authenticator';
20+
export { AuthenticatorsContextProvider } from './pages/AuthLayout';
2021

2122
export type AuthOptions = {
2223
components: Partial<{

packages/plugins/@nocobase/plugin-auth/src/client/pages/AuthLayout.tsx

+10-5
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,13 @@
88
*/
99

1010
import { css } from '@emotion/css';
11-
import React from 'react';
11+
import React, { FC } from 'react';
1212
import { Outlet } from 'react-router-dom';
1313
import { useSystemSettings, PoweredBy, useRequest, useAPIClient } from '@nocobase/client';
1414
import { AuthenticatorsContext } from '../authenticator';
1515
import { Spin } from 'antd';
1616

17-
export function AuthLayout(props: any) {
18-
const { data } = useSystemSettings();
17+
export const AuthenticatorsContextProvider: FC<{ children: React.ReactNode }> = ({ children }) => {
1918
const api = useAPIClient();
2019
const {
2120
data: authenticators = [],
@@ -38,6 +37,12 @@ export function AuthLayout(props: any) {
3837
throw error;
3938
}
4039

40+
return <AuthenticatorsContext.Provider value={authenticators as any}>{children}</AuthenticatorsContext.Provider>;
41+
};
42+
43+
export function AuthLayout() {
44+
const { data } = useSystemSettings();
45+
4146
return (
4247
<div
4348
style={{
@@ -47,9 +52,9 @@ export function AuthLayout(props: any) {
4752
}}
4853
>
4954
<h1>{data?.data?.title}</h1>
50-
<AuthenticatorsContext.Provider value={authenticators as any}>
55+
<AuthenticatorsContextProvider>
5156
<Outlet />
52-
</AuthenticatorsContext.Provider>
57+
</AuthenticatorsContextProvider>
5358
<div
5459
className={css`
5560
position: absolute;

0 commit comments

Comments
 (0)