Limit remote overlay to single QR
This commit is contained in:
@@ -18,7 +18,7 @@ export function RemoteAccessOverlay(props: RemoteAccessOverlayProps) {
|
|||||||
const [meta, setMeta] = createSignal<ServerMeta | null>(null)
|
const [meta, setMeta] = createSignal<ServerMeta | null>(null)
|
||||||
const [loading, setLoading] = createSignal(false)
|
const [loading, setLoading] = createSignal(false)
|
||||||
const [qrCodes, setQrCodes] = createSignal<Record<string, string>>({})
|
const [qrCodes, setQrCodes] = createSignal<Record<string, string>>({})
|
||||||
const [expanded, setExpanded] = createSignal<Set<string>>(new Set())
|
const [expandedUrl, setExpandedUrl] = createSignal<string | null>(null)
|
||||||
const [error, setError] = createSignal<string | null>(null)
|
const [error, setError] = createSignal<string | null>(null)
|
||||||
|
|
||||||
const addresses = createMemo<NetworkAddress[]>(() => meta()?.addresses ?? [])
|
const addresses = createMemo<NetworkAddress[]>(() => meta()?.addresses ?? [])
|
||||||
@@ -45,14 +45,11 @@ export function RemoteAccessOverlay(props: RemoteAccessOverlayProps) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const toggleExpanded = async (url: string) => {
|
const toggleExpanded = async (url: string) => {
|
||||||
const next = new Set(expanded())
|
if (expandedUrl() === url) {
|
||||||
if (next.has(url)) {
|
setExpandedUrl(null)
|
||||||
next.delete(url)
|
|
||||||
setExpanded(next)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
next.add(url)
|
setExpandedUrl(url)
|
||||||
setExpanded(next)
|
|
||||||
if (!qrCodes()[url]) {
|
if (!qrCodes()[url]) {
|
||||||
try {
|
try {
|
||||||
const dataUrl = await toDataURL(url, { margin: 1, scale: 4 })
|
const dataUrl = await toDataURL(url, { margin: 1, scale: 4 })
|
||||||
@@ -184,7 +181,7 @@ export function RemoteAccessOverlay(props: RemoteAccessOverlayProps) {
|
|||||||
<div class="remote-address-list">
|
<div class="remote-address-list">
|
||||||
<For each={addresses()}>
|
<For each={addresses()}>
|
||||||
{(address) => {
|
{(address) => {
|
||||||
const expandedState = () => expanded().has(address.url)
|
const expandedState = () => expandedUrl() === address.url
|
||||||
const qr = () => qrCodes()[address.url]
|
const qr = () => qrCodes()[address.url]
|
||||||
return (
|
return (
|
||||||
<div class="remote-address">
|
<div class="remote-address">
|
||||||
|
|||||||
Reference in New Issue
Block a user