// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0-or-later // @source: https://gitlab.com/soapbox-pub/ditto/-/tree/f0a3877c import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{qi as t}from"./lucide-icons-BdRF0moN.js";import{n}from"./useAppContext-Ughdk2-Z.js";import{r}from"./sanitizeUrl-Bk5f35GN.js";import{n as i,t as a}from"./appBlossom-CsMDSd4h.js";var o=e(t(),1),s=/^\/([a-f0-9]{64})\b/;function c(e,t){try{let n=new URL(e);if(!s.test(n.pathname))return[];let{origin:r}=n,i=new Set([r]),a=[];for(let e of t){let t;try{t=new URL(e).origin}catch{continue}i.has(t)||(i.add(t),a.push(`${t}${n.pathname}${n.search}`))}return a}catch{return[]}}function l(e,t,n){let i=new Set([e]),a=[e];for(let e of t??[]){let t=r(e);!t||i.has(t)||(i.add(t),a.push(t))}for(let t of c(e,n))i.has(t)||(i.add(t),a.push(t));return a}function u(){let e=(0,o.useContext)(n)?.config,t=e?.blossomServerMetadata,r=e?.useAppBlossomServers??!0;return(0,o.useMemo)(()=>t?i(t,r):[...a.servers],[t,r])}function d(e,t){let n=u(),r=t?.join(` `)??``;return(0,o.useMemo)(()=>e?l(e,r?r.split(` `):void 0,n):[],[e,r,n])}function f(e){let[t,n]=(0,o.useState)(0),r=e[0],i=(0,o.useRef)(r);i.current!==r&&(i.current=r,t!==0&&n(0));let a=e.length,s=(0,o.useCallback)(()=>n(e=>Math.min(e+1,a)),[a]),c=(0,o.useCallback)(()=>n(0),[]);return{src:e[Math.min(t,a-1)],advance:s,failed:a>0&&t>=a,reset:c}}function p(e,t){let{src:n,advance:r,failed:i,reset:a}=f(d(e,t));return{src:n??e,onError:r,failed:i,reset:a}}export{u as n,c as r,p as t}; // @license-end