import {html, shadowView, svgSlate} from "@benev/slate" import stylesCss from "./styles.css.js" import {manager} from "../../../context.js" import {whence} from "../../../../tools/whence.js" import {Passport} from "../../../../auth/passport.js" import {Situation} from "../../../logic/situation.js" import {PassportsFile} from "../../../../auth/passports-file.js" import themeCss from "../../../../common/theme.css.js" import {IdView} from "../../../../common/views/id/view.js" import userIcon from "../../../../common/icons/tabler/user.icon.js" export const ListPage = shadowView(use => ( situation: Situation.List, ) => { use.styles([themeCss, stylesCss]) const {passportStore} = situation const passports = passportStore.list() const passportsFile = new PassportsFile().add(...passports) const none = passports.length === 0 const purpose = manager.purpose.value const triggerLogin = (passport: Passport) => () => { if (purpose.kind === "login") purpose.onLogin(passport) } function renderPassport(passport: Passport) { const file = new PassportsFile().add(passport) return html`
${svgSlate(userIcon)}

${passport.name}

${purpose.kind === "login" ? html` ` : null}
${whence(passport.created)} ${IdView([passport.thumbprint])}
Download
` } return html`
${purpose.kind === "login" ? html`
${none ? html`

Create or import a passport for ${purpose.hostname}

` : html`

Choose your login for ${purpose.hostname}

`}
` : html`

Manage your login passports

`}
` })