diff --git a/components/BMd3TextField.tsx b/components/BMd3TextField.tsx index 9b429ad..591a18c 100644 --- a/components/BMd3TextField.tsx +++ b/components/BMd3TextField.tsx @@ -1,8 +1,10 @@ import { Component, ComponentChildren, ContextType } from "preact"; import { BCtx } from "./BContext.tsx"; import { Ref, useRef, useState } from "preact/hooks"; -import type _TextField from "../server/md3/md-outlined-text-field.ts"; -import type { MdOutlinedTextField as _TextFieldE } from "../server/md3/md-outlined-text-field.ts"; +import type { + _MdOutlinedTextField as _TextFieldE, + MdOutlinedTextField as _TextField, +} from "../server/md3.ts"; import { MdOutlinedTextField } from "../server/dmodule.ts"; import List from "preact-material-components/List"; diff --git a/components/CreateRootUser.tsx b/components/CreateRootUser.tsx index 5d3ea1f..0629c02 100644 --- a/components/CreateRootUser.tsx +++ b/components/CreateRootUser.tsx @@ -3,6 +3,7 @@ import { GlobalCtx } from "./GlobalContext.tsx"; import BMd3TextField from "./BMd3TextField.tsx"; import t from "../server/i18n.ts"; import { useState } from "preact/hooks"; +import { MdTonalButton } from "../server/dmodule.ts"; type Props = { show: boolean; @@ -13,8 +14,10 @@ export default class CreateRootUser extends Component { declare context: ContextType; render() { if (!this.props.show) return null; + if (!MdTonalButton.value) return null; const [username, set_username] = useState(); - console.log(username); + const [password, set_password] = useState(); + const Button = MdTonalButton.value; return (
{ value={username} set_value={set_username} /> + +
); } diff --git a/import_map.json b/import_map.json index a6dbca7..d141447 100644 --- a/import_map.json +++ b/import_map.json @@ -24,7 +24,7 @@ "ua-parser-js": "https://esm.sh/ua-parser-js@1.0.35", "pbkdf2-hmac": "https://esm.sh/pbkdf2-hmac@1.2.1", "randomstring": "https://esm.sh/randomstring@1.3.0", - "@material/web/": "https://esm.sh/@material/web@1.0.0-pre.12/", + "@material/web/": "https://unpkg.lifegpc.workers.dev/@material/web@1.0.0-pre.12/", "@lit-labs/react/": "https://esm.sh/@lit-labs/react@1.2.0/" } } diff --git a/server/dmodule.ts b/server/dmodule.ts index 80bad62..6ed052f 100644 --- a/server/dmodule.ts +++ b/server/dmodule.ts @@ -1,11 +1,25 @@ import { signal } from "@preact/signals"; -import type _MdOutlinedTextField from "./md3/md-outlined-text-field.ts"; +import type { + MdOutlinedButton as _MdOutlinedButton, + MdOutlinedTextField as _MdOutlinedTextField, + MdTonalButton as _MdTonalButton, +} from "./md3.ts"; export const MdOutlinedTextField = signal< typeof _MdOutlinedTextField | undefined >(undefined); +export const MdOutlinedButton = signal( + undefined, +); + +export const MdTonalButton = signal( + undefined, +); + export async function load_dmodule() { - MdOutlinedTextField.value = - (await import("./md3/md-outlined-text-field.ts")).default; + const md3 = await import("./md3.ts"); + MdOutlinedTextField.value = md3.MdOutlinedTextField; + MdOutlinedButton.value = md3.MdOutlinedButton; + MdTonalButton.value = md3.MdTonalButton; } diff --git a/server/md3.ts b/server/md3.ts new file mode 100644 index 0000000..de2a4d0 --- /dev/null +++ b/server/md3.ts @@ -0,0 +1,30 @@ +import { MdOutlinedTextField as _MdOutlinedTextField } from "@material/web/textfield/outlined-text-field.js?dts=1"; +import { MdOutlinedButton as _MdOutlinedButton } from "@material/web/button/outlined-button.js?dts=1"; +import { MdTonalButton as _MdTonalButton } from "@material/web/button/tonal-button.js?dts=1"; +import { createComponent } from "@lit-labs/react/?target=es2022"; +import * as Preact from "preact/compat"; + +export const MdOutlinedTextField = createComponent({ + tagName: "md-outlined-text-field", + elementClass: _MdOutlinedTextField, + // @ts-ignore Checked + react: Preact, +}); + +export const MdOutlinedButton = createComponent({ + tagName: "md-outlined-button", + elementClass: _MdOutlinedButton, + // @ts-ignore Checked + react: Preact, +}); + +export const MdTonalButton = createComponent({ + tagName: "md-tonal-button", + elementClass: _MdTonalButton, + // @ts-ignore Checked + react: Preact, +}); + +export { _MdOutlinedTextField }; +export { _MdOutlinedButton }; +export { _MdTonalButton }; diff --git a/server/md3/md-outlined-text-field.ts b/server/md3/md-outlined-text-field.ts deleted file mode 100644 index 33c7d7d..0000000 --- a/server/md3/md-outlined-text-field.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { MdOutlinedTextField as _MdOutlinedTextField } from "@material/web/textfield/outlined-text-field.js?target=es2022"; -import { createComponent } from "@lit-labs/react/?target=es2022"; -import * as Preact from "preact/compat"; - -const MdOutlinedTextField = createComponent({ - tagName: "md-outlined-text-field", - elementClass: _MdOutlinedTextField, - // @ts-ignore Checked - react: Preact, -}); - -export { _MdOutlinedTextField as MdOutlinedTextField }; -export default MdOutlinedTextField; diff --git a/translation/en/user.jsonc b/translation/en/user.jsonc index 53485c5..f9076d3 100644 --- a/translation/en/user.jsonc +++ b/translation/en/user.jsonc @@ -1,3 +1,4 @@ { - "username": "Username" + "username": "Username", + "password": "Password" } diff --git a/translation/zh-cn/user.jsonc b/translation/zh-cn/user.jsonc index 9bac8bb..7777095 100644 --- a/translation/zh-cn/user.jsonc +++ b/translation/zh-cn/user.jsonc @@ -1,3 +1,4 @@ { - "username": "用户名" + "username": "用户名", + "password": "密码" }