31 lines
622 B
TypeScript
31 lines
622 B
TypeScript
export const button_variants = ["accent1", "accent2"] as const;
|
|
type variant = (typeof button_variants)[number];
|
|
|
|
export function button({
|
|
text,
|
|
href,
|
|
variant,
|
|
disabled = false,
|
|
submit = false,
|
|
}: {
|
|
text: string;
|
|
href: string;
|
|
variant: variant;
|
|
disabled?: boolean;
|
|
submit?: boolean;
|
|
}): JSX.Element {
|
|
const classstr = `class="button button--color-${variant}"`;
|
|
if (submit) {
|
|
return /* HTML */ `<button type="submit" formaction="${href}" ${classstr}>
|
|
${text}
|
|
</button>`;
|
|
}
|
|
return /* HTML */ `<a
|
|
${classstr}
|
|
${disabled ? "" : `href="${href}"`}
|
|
${disabled ? "disabled" : ""}
|
|
>
|
|
${text}
|
|
</a>`;
|
|
}
|