--- import { actions } from 'astro:actions'; import ShareableContentList from '../content/ShareableContentList.astro'; import ShareAtUriForm from '../content/ShareAtUriForm.astro'; import ShareSourceMenu from './ShareSourceMenu.astro'; import type { ShareCandidateList } from '../../lib/community/share-candidates'; interface Props { loggedInUser: { did: string; handle: string } | null; isMember: boolean; isAdmin: boolean; shareRepo: string; shareSourceProfile: { displayName?: string; avatar?: string } | null; shareCandidates: ShareCandidateList | null; shareCandidatesError: boolean; } const { loggedInUser, isMember, isAdmin, shareRepo, shareSourceProfile, shareCandidates, shareCandidatesError, } = Astro.props; const canShareContent = isMember || isAdmin; const state = !loggedInUser ? 'logged-out' : canShareContent ? 'member' : 'logged-in'; const hasCandidateList = !!shareCandidates && (shareCandidates.events.length > 0 || shareCandidates.documents.length > 0); const shareUriPlaceholder = hasCandidateList ? 'at://did:plc:.../site.standard.document/...' : 'at://did:plc:.../community.lexicon.calendar.event/...'; --- {state === 'logged-out' && ( )} {state === 'member' && (
{!isAdmin && (
)}
)} {state === 'logged-in' && ( )}