{:else if kind === "setup"}
{setup.reason === "preview" ? "Set up this phone" : "Welcome to SoulStream"}
Your library, the catalog and the network, in one place. Two things make the rest of it work — neither is required now, and both live on a screen you can come back to.
Where your music lives
One folder is the library: everything saved or downloaded lands in it, and everything in it is in the library. Until you pick one it is a folder inside the app that nothing else on this phone can see.
{setup.folder || "—"}
{@render row("folder", setup.picking ? "Picking…" : needsFolder() ? "Choose a folder" : "Choose a different folder", needsFolder() ? "somewhere on this phone's own storage" : "this one is yours", () => void chooseFolder())} {#if !needsFolder() && setup.access === false} {@render row("alert", "Allow all files access", "a folder on the phone's storage needs it — the system screen opens, come back after", () => void requestAccess())} {/if}
Soulseek
Anything the library does not hold comes off the network: what Search finds, a song played from someone's copy, Save. The card asks for a username and a password and keeps them on this phone — nothing here does.
{#if needsAccount()}
{@render row("users", "Sign in on Community", "the card is on the Community tab", act(() => go("community")))}
{:else}
Signed in{slsk.username || slsk.savedUser}
{/if}
Nothing above is required. You → Set up this phone again opens it back up.