@gphone/sdk
    Preparing search index...

    Interface AppProps

    What the shell hands an app component.

    There was no such type, and Shell.svelte rendered every app as any — so nothing was checked across the one boundary every app crosses. It showed: five apps declared a bare $props(), and of the seven that typed onback, Camera made it required and the rest optional. Nothing could tell you which was right.

    It is required. The shell passes onback={goHome} unconditionally on every render, so an app receiving nothing is not a state that exists, and declaring it optional forced onback?.() at every call site to guard against a case the shell cannot produce.

    Deep-link props are the app's own, and it should say so by extending this:

    let { onback, mailId } = $props<AppProps & { mailId?: number }>();
    

    Keep those optional. A deep link is one way in among several, and the same component still has to render when opened from the launcher with nothing.

    interface AppProps {
        onback: () => void;
    }
    Index
    onback: () => void

    Leave the app. The shell's own back action — it goes home rather than up a level.