@uniai-fe/uds-templates 0.4.19 → 0.4.21
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/styles.css
CHANGED
package/package.json
CHANGED
|
@@ -24,22 +24,17 @@ export default function AuthLoginContainer({
|
|
|
24
24
|
onFindPasswordLinkClick,
|
|
25
25
|
}: AuthLoginProps) {
|
|
26
26
|
return (
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
onFindPasswordClick={onFindPasswordLinkClick}
|
|
40
|
-
/>
|
|
41
|
-
)}
|
|
42
|
-
</AuthContainer>
|
|
43
|
-
</>
|
|
27
|
+
<AuthContainer
|
|
28
|
+
className={clsx("auth-login-container", className)}
|
|
29
|
+
header={header}
|
|
30
|
+
footer={footer}
|
|
31
|
+
>
|
|
32
|
+
<AuthLoginFormField {...fieldOptions} />
|
|
33
|
+
{/* 링크 옵션이 부분적으로만 넘어와도 내부에서 존재하는 항목만 렌더링한다. */}
|
|
34
|
+
<AuthLoginLinkButtons
|
|
35
|
+
linkOptions={linkOptions}
|
|
36
|
+
onFindPasswordClick={onFindPasswordLinkClick}
|
|
37
|
+
/>
|
|
38
|
+
</AuthContainer>
|
|
44
39
|
);
|
|
45
40
|
}
|
|
@@ -1,55 +1,76 @@
|
|
|
1
1
|
import Link from "next/link";
|
|
2
2
|
import { Button, Divider } from "@uniai-fe/uds-primitives";
|
|
3
|
+
import type { AuthLoginLinkOptions } from "../types";
|
|
3
4
|
|
|
5
|
+
/**
|
|
6
|
+
* 로그인 링크 버튼 묶음; 전달된 링크만 선택적으로 렌더링한다.
|
|
7
|
+
* @component
|
|
8
|
+
* @param {{ linkOptions?: AuthLoginLinkOptions; onFindPasswordClick?: () => void; }} props
|
|
9
|
+
* @param {AuthLoginLinkOptions} [props.linkOptions] 로그인 링크 옵션
|
|
10
|
+
* @param {() => void} [props.onFindPasswordClick] 비밀번호 찾기 커스텀 클릭 핸들러
|
|
11
|
+
*/
|
|
4
12
|
export default function AuthLoginLinkButtons({
|
|
5
|
-
|
|
6
|
-
hrefFindPassword,
|
|
7
|
-
hrefSignup,
|
|
13
|
+
linkOptions,
|
|
8
14
|
onFindPasswordClick,
|
|
9
15
|
}: {
|
|
10
|
-
|
|
11
|
-
hrefFindPassword: string;
|
|
12
|
-
hrefSignup: string;
|
|
16
|
+
linkOptions?: AuthLoginLinkOptions;
|
|
13
17
|
onFindPasswordClick?: () => void;
|
|
14
18
|
}) {
|
|
19
|
+
const hrefFindId = linkOptions?.find?.id;
|
|
20
|
+
const hrefFindPassword = linkOptions?.find?.password;
|
|
21
|
+
const hrefSignup = linkOptions?.signup;
|
|
22
|
+
|
|
23
|
+
if (!hrefFindId && !hrefFindPassword && !hrefSignup) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
|
|
15
27
|
return (
|
|
16
28
|
<div className="auth-login-util-container">
|
|
17
|
-
|
|
18
|
-
<
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
29
|
+
{(hrefFindId || hrefFindPassword) && (
|
|
30
|
+
<div className="auth-login-find-account">
|
|
31
|
+
{hrefFindId && (
|
|
32
|
+
<Link
|
|
33
|
+
href={hrefFindId}
|
|
34
|
+
className="auth-login-find-account-button auth-find-id-button"
|
|
35
|
+
>
|
|
36
|
+
<span>아이디 찾기</span>
|
|
37
|
+
</Link>
|
|
38
|
+
)}
|
|
39
|
+
{hrefFindId && hrefFindPassword && <Divider />}
|
|
40
|
+
{/* 비밀번호 찾기 링크가 있을 때만 버튼/링크를 선택적으로 노출한다. */}
|
|
41
|
+
{hrefFindPassword &&
|
|
42
|
+
(onFindPasswordClick ? (
|
|
43
|
+
<button
|
|
44
|
+
type="button"
|
|
45
|
+
className="auth-login-find-account-button auth-find-password-button"
|
|
46
|
+
onClick={onFindPasswordClick}
|
|
47
|
+
>
|
|
48
|
+
<span>비밀번호 찾기</span>
|
|
49
|
+
</button>
|
|
50
|
+
) : (
|
|
51
|
+
<Link
|
|
52
|
+
href={hrefFindPassword}
|
|
53
|
+
className="auth-login-find-account-button auth-find-password-button"
|
|
54
|
+
>
|
|
55
|
+
<span>비밀번호 찾기</span>
|
|
56
|
+
</Link>
|
|
57
|
+
))}
|
|
58
|
+
</div>
|
|
59
|
+
)}
|
|
60
|
+
{hrefSignup && (
|
|
61
|
+
<div className="auth-login-signup">
|
|
62
|
+
{/* 회원가입 링크가 있을 때만 signup CTA를 유지한다. */}
|
|
63
|
+
<Button.Rounded
|
|
64
|
+
as={Link}
|
|
65
|
+
href={hrefSignup}
|
|
66
|
+
className="auth-login-signup-button"
|
|
67
|
+
priority="tertiary"
|
|
68
|
+
size="small"
|
|
37
69
|
>
|
|
38
|
-
|
|
39
|
-
</
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
<div className="auth-login-signup">
|
|
43
|
-
<Button.Rounded
|
|
44
|
-
as={Link}
|
|
45
|
-
href={hrefSignup}
|
|
46
|
-
className="auth-login-signup-button"
|
|
47
|
-
priority="tertiary"
|
|
48
|
-
size="small"
|
|
49
|
-
>
|
|
50
|
-
회원가입
|
|
51
|
-
</Button.Rounded>
|
|
52
|
-
</div>
|
|
70
|
+
회원가입
|
|
71
|
+
</Button.Rounded>
|
|
72
|
+
</div>
|
|
73
|
+
)}
|
|
53
74
|
</div>
|
|
54
75
|
);
|
|
55
76
|
}
|
|
@@ -244,31 +244,31 @@ export interface AuthLoginFieldOptions {
|
|
|
244
244
|
|
|
245
245
|
/**
|
|
246
246
|
* 로그인 화면 링크 옵션; 찾기/회원가입 링크를 묶는다.
|
|
247
|
-
* @property {{ id
|
|
248
|
-
* @property {string} find.id 아이디 찾기 링크
|
|
249
|
-
* @property {string} find.password 비밀번호 찾기 링크
|
|
250
|
-
* @property {string} signup 회원가입 링크
|
|
247
|
+
* @property {{ id?: string; password?: string }} [find] 계정찾기 링크
|
|
248
|
+
* @property {string} [find.id] 아이디 찾기 링크
|
|
249
|
+
* @property {string} [find.password] 비밀번호 찾기 링크
|
|
250
|
+
* @property {string} [signup] 회원가입 링크
|
|
251
251
|
*/
|
|
252
252
|
export interface AuthLoginLinkOptions {
|
|
253
253
|
/**
|
|
254
254
|
* 아이디/비밀번호 찾기 링크
|
|
255
|
-
* @property {string} id 아이디 찾기 링크
|
|
256
|
-
* @property {string} password 비밀번호 찾기 링크
|
|
255
|
+
* @property {string} [id] 아이디 찾기 링크
|
|
256
|
+
* @property {string} [password] 비밀번호 찾기 링크
|
|
257
257
|
*/
|
|
258
|
-
find
|
|
258
|
+
find?: {
|
|
259
259
|
/**
|
|
260
260
|
* 아이디 찾기 링크
|
|
261
261
|
*/
|
|
262
|
-
id
|
|
262
|
+
id?: string;
|
|
263
263
|
/**
|
|
264
264
|
* 비밀번호 찾기 링크
|
|
265
265
|
*/
|
|
266
|
-
password
|
|
266
|
+
password?: string;
|
|
267
267
|
};
|
|
268
268
|
/**
|
|
269
269
|
* 회원가입 링크
|
|
270
270
|
*/
|
|
271
|
-
signup
|
|
271
|
+
signup?: string;
|
|
272
272
|
}
|
|
273
273
|
|
|
274
274
|
/**
|
|
@@ -279,7 +279,7 @@ export interface AuthLoginLinkOptions {
|
|
|
279
279
|
* @property {ReactNode} [footer] 하단 콘텐츠
|
|
280
280
|
* @property {AuthLoginFieldOptions} [fieldOptions] 입력 필드 옵션
|
|
281
281
|
* @property {AuthLoginLinkOptions} [linkOptions] 계정관련 링크 옵션
|
|
282
|
-
* @property {() => void} onFindPasswordLinkClick 비밀번호 찾기 링크버튼 클릭 콜백 이벤트
|
|
282
|
+
* @property {() => void} [onFindPasswordLinkClick] 비밀번호 찾기 링크버튼 클릭 콜백 이벤트
|
|
283
283
|
*/
|
|
284
284
|
export interface AuthLoginProps extends Omit<AuthContainerProps, "children"> {
|
|
285
285
|
/**
|