UNPKG

@e280/authlocal

Version:

User-sovereign login system for everybody

47 lines (37 loc) 1.23 kB
import {deep, Thumbprint} from "@e280/stz" import {html, shadowView} from "@benev/slate" import stylesCss from "./styles.css.js" import themeCss from "../../../theme.css.js" import {manager} from "../../../context.js" import {Identity} from "../../../../trust/exports/authority.js" export const Summary = shadowView(use => (identities: Identity[]) => { use.name("summary") use.styles([themeCss, stylesCss]) const existing = new Map( manager.depot.identities.permits.value .map(permit => [permit.identity.id, permit.identity]) ) const overwrites = new Map( identities .filter(ident => { const old = existing.get(ident.id) return old ? !deep.equal(old, ident) : false }) .map(ident => [ident.id, ident]) ) return html` <ul class=identities> ${identities.map(identity => html` <li x-id="${identity.id}" ?x-overwrite="${overwrites.has(identity.id)}"> <span class=label>${identity.label}</span> <span class=id>${Thumbprint.sigil.fromHex(identity.id)}</span> </li> `)} </ul> ${overwrites.size > 0 ? html` <p class=overwrite>${overwrites.size} existing identity ${overwrites.size === 1 ?"label" :"labels"} will be overwritten.</p> ` : null} ` })