@novely/solid-renderer
Version:
Renderer for @novely/core powered by SolidJS
39 lines (38 loc) • 1.72 kB
TypeScript
import type { BaseTranslationStrings, Context, CoreData, Renderer, RendererInit, StorageData, Stored } from '@novely/core';
import type { DeepAtom, RendererStateStore } from '@novely/renderer-toolkit';
import type { Accessor, FlowComponent } from 'solid-js';
import type { Emitter } from '../emitter';
import type { EmitterEventsMap, RendererStoreExtension } from '../types';
import type { createAudio } from '@novely/renderer-toolkit';
type DataContext = {
$rendererState: DeepAtom<RendererStateStore<RendererStoreExtension>>;
storageData: Accessor<StorageData>;
storageDataUpdate: (fn: (prev: StorageData) => StorageData) => void;
coreData: Accessor<CoreData>;
coreDataUpdate: (fn: (prev: CoreData) => CoreData) => void;
options: RendererInit<any, any>;
renderer: Renderer;
t: (key: BaseTranslationStrings | (string & Record<never, never>)) => string;
emitter: Emitter<EmitterEventsMap>;
media: {
hyperWide: Accessor<boolean>;
};
getContext: (name: string) => Context;
removeContext: (name: string) => void;
audio: ReturnType<typeof createAudio>;
};
declare const Context: import("solid-js").Context<DataContext | undefined>;
type ProviderProps = {
$rendererState: DeepAtom<RendererStateStore<RendererStoreExtension>>;
storageData: Stored<StorageData>;
coreData: Stored<CoreData>;
options: RendererInit<any, any>;
renderer: Renderer;
emitter: Emitter<EmitterEventsMap>;
getContext: (name: string) => Context;
removeContext: (name: string) => void;
audio: ReturnType<typeof createAudio>;
};
declare const Provider: FlowComponent<ProviderProps>;
declare const useData: () => DataContext;
export { Provider, useData };