Shoji API Reference
    Preparing search index...

    Interface PluginContext

    interface PluginContext {
        gallery: Gallery;
        options: Readonly<Record<string, unknown>>;
        on: <K extends keyof GalleryEvents>(
            event: K,
            fn: (detail: GalleryEvents[K]) => void,
        ) => Unsubscribe;
        emit<K extends keyof GalleryEvents>(
            event: K,
            detail: GalleryEvents[K],
        ): void;
        ui: {
            toolbar(
                slot: "left" | "center" | "right",
                el: HTMLElement | ButtonSpec,
            ): Unsubscribe;
            overlay(el: HTMLElement, layer?: number): Unsubscribe;
            outer(): HTMLElement;
            registerShortcut(key: string, fn: (e: KeyboardEvent) => void): Unsubscribe;
            registerVideoProvider(
                name: string,
                render: VideoProviderRenderer,
            ): Unsubscribe;
        };
        storage: {
            get(key: string): unknown;
            set(key: string, value: unknown): void;
        };
    }
    Index
    gallery: Gallery
    options: Readonly<Record<string, unknown>>
    on: <K extends keyof GalleryEvents>(
        event: K,
        fn: (detail: GalleryEvents[K]) => void,
    ) => Unsubscribe
    ui: {
        toolbar(
            slot: "left" | "center" | "right",
            el: HTMLElement | ButtonSpec,
        ): Unsubscribe;
        overlay(el: HTMLElement, layer?: number): Unsubscribe;
        outer(): HTMLElement;
        registerShortcut(key: string, fn: (e: KeyboardEvent) => void): Unsubscribe;
        registerVideoProvider(
            name: string,
            render: VideoProviderRenderer,
        ): Unsubscribe;
    }

    Type Declaration

    storage: { get(key: string): unknown; set(key: string, value: unknown): void }