UNPKG

apphouse

Version:

Component library for React that uses observable state management and theme-able components.

37 lines (36 loc) 1.11 kB
import React from 'react'; import { AppBase } from '../app/AppBase'; import { Route } from '../app/routing/route.interface'; import { ApphouseTheme } from '../styles/defaults/themes.interface'; import { FeedbackType } from '../models/Feedback'; export interface IApphouseThemeProvider { theme?: ApphouseTheme; mode?: 'light' | 'dark' | 'custom' | string; children?: React.ReactNode; } export interface ApphouseContentWrapperProps { app: AppBase; children: React.ReactNode; } /** * Interface for the store with base */ export type IStoreWithBase<T> = T & { uuid: string; app: AppBase; theme: ApphouseTheme; path: string; open: (path?: string, title?: string, callback?: () => void) => void; openPopup: (popup: JSX.Element) => void; routes: Route[]; closePopup: (popupId?: string) => void; alert: (feedback: FeedbackType) => void; }; export type Routes<T> = (appStore: IStoreWithBase<T>) => { [key: string]: unknown; }; export interface IApphouseProvider<T> { children: React.ReactNode; store?: IStoreWithBase<T>; routes?: Routes<T>; }