import React from "https://esm.sh/react@18.3.1"; import { html } from "./constants.js?v=33"; import { StatusText, RoleChip } from "./components.js?v=32"; export function AuthModal({ mode, setMode, loginForm, setLoginForm, createResult, status, roleSearchInput, setRoleSearchInput, onRoleSearchInput, roleSearchItems, selectedRoles, onToggleRole, onCreate, onLogin, onFinishCreate, onClose, onOpenRole, }) { return html`

${createResult ? "Create profile and choose your roles" : mode === "login" ? "Open your profile" : "Create a profile"}

${createResult ? "Roles stay separate from plays. Pick any that fit now, or skip and change them later." : "Use your profile ID and pass. Partner links stay private."}

${ createResult ? html`
Profile ID
${createResult.id}
Private pass
${createResult.private_token}
Choose roles
Optional, but better to capture this now than bury it later.
{ setRoleSearchInput(e.target.value); onRoleSearchInput(e.target.value); }} /> ${selectedRoles.length ? html`
${selectedRoles.map( (item) => html`<${RoleChip} key=${item.id} kink=${item} selected=${true} onOpen=${onOpenRole} onToggle=${onToggleRole} />`, )}
` : html`
No roles selected yet.
`} ${roleSearchItems.length ? html`
${roleSearchItems.map( (item) => html`<${RoleChip} key=${item.kink.id} kink=${item.kink} selected=${selectedRoles.some((role) => role.id === item.kink.id)} onOpen=${onOpenRole} onToggle=${onToggleRole} />`, )}
` : roleSearchInput.trim() ? html`
No matching roles.
` : null}
` : html`
${ mode === "login" ? html`
setLoginForm((v) => ({ ...v, user_id: e.target.value }))} /> setLoginForm((v) => ({ ...v, private_token: e.target.value }))} />
` : html`
` } ` } <${StatusText} text=${status} />
`; }