@resistdesign/voltra
    Preparing search index...

    Module app

    Build front-end applications with React and TypeScript utilities, including layout/state helpers and form generation support.

    Import from the app subpath only:

    import {
    createFormRenderer,
    getApplicationStateIdentifier,
    useApplicationStateLoader,
    useApplicationStateValue,
    type RemoteProcedureCall,
    } from "@resistdesign/voltra/app";

    useApplicationStateValue and useApplicationStateLoader for good starting points.

    Reference examples:

    • examples/README.md
    • examples/routing/app-routing.ts
    import {
    getApplicationStateIdentifier,
    useApplicationStateLoader,
    useApplicationStateValue,
    type RemoteProcedureCall,
    } from "@resistdesign/voltra/app";
    import { useCallback } from "react";

    const loginUsernameId = getApplicationStateIdentifier<string>();
    const loginPasswordId = getApplicationStateIdentifier<string>();
    const loginLoggedInId = getApplicationStateIdentifier<boolean>();

    const APP_STATE_IDENTIFIERS = {
    LOGIN: {
    USERNAME: loginUsernameId,
    PASSWORD: loginPasswordId,
    LOGGED_IN: loginLoggedInId,
    },
    };

    const LOGIN_SERVICE_CONFIG = {
    protocol: "https",
    domain: "example.com",
    basePath: "/api",
    };

    const LOGIN_RPC: RemoteProcedureCall = {
    serviceConfig: LOGIN_SERVICE_CONFIG,
    path: "/login",
    args: [],
    };

    export const LoginController = () => {
    const {
    value: username = "",
    onChange: setUsername,
    } = useApplicationStateValue(APP_STATE_IDENTIFIERS.LOGIN.USERNAME);
    const {
    value: password = "",
    onChange: setPassword,
    } = useApplicationStateValue(APP_STATE_IDENTIFIERS.LOGIN.PASSWORD);
    const {
    value: loggedIn = false,
    onChange: setLoggedIn,
    } = useApplicationStateValue(APP_STATE_IDENTIFIERS.LOGIN.LOGGED_IN);

    const {
    value: latestLoginState,
    modified: loginStateModified,
    loading: loadingLogin,
    makeRemoteProcedureCall,
    } =
    useApplicationStateLoader({
    identifier: APP_STATE_IDENTIFIERS.LOGIN.LOGGED_IN,
    remoteProcedureCall: LOGIN_RPC,
    manual: true,
    });

    const onSubmit = useCallback(() => {
    makeRemoteProcedureCall(username, password);
    }, [username, password, makeRemoteProcedureCall]);

    return {
    username,
    password,
    loggedIn,
    latestLoginState,
    loginStateModified,
    setUsername,
    setPassword,
    setLoggedIn,
    onSubmit,
    loadingLogin,
    };
    };

    See also: @resistdesign/voltra/web and @resistdesign/voltra/native for runtime-specific UI helpers.

    Classes

    TypeInfoORMClient

    Interfaces

    AutoFieldProps
    AutoFormProps
    AutoFormRenderer
    AutoFormViewProps
    PrimitiveInputProps

    Type Aliases

    ApplicationState
    ApplicationStateContextType
    ApplicationStateLoader
    ApplicationStateLoaderConfig
    ApplicationStateModificationState
    ApplicationStateProviderProps
    ApplicationStateSetAction
    ApplicationStateSetter
    ApplicationStateValue
    ApplicationStateValueController
    AreaBounds
    AutoFieldInput
    AutoFieldRendererProps
    BaseTypeInfoORMAPIRequestState
    ComponentMap
    ComponentSuite
    ComputeTrackPixelsInput
    CreateUniversalAdapterOptions
    CustomTypeAction
    CustomTypeActionPayload
    CustomValidatorMap
    EasyLayoutCore
    EasyLayoutFactoryConfig
    EasyLayoutParsed
    EasyLayoutSpacing
    EasyLayoutTemplate
    FCWithChildren
    FieldKind
    FieldRenderContext
    FieldRenderer
    FieldValue
    FormController
    FormErrorInputMap
    FormErrorMap
    FormFieldController
    FormValue
    FormValues
    HistoryController
    HistoryEntry
    HistoryListener
    HistoryLocation
    HistoryPathParts
    LayoutComponents
    PrimitiveComponent
    PrimitiveComponents
    RelationAction
    RelationActionPayload
    RemoteProcedureCall
    ResolvedSuite
    RouteAdapter
    RouteContextType
    RoutePathConfig
    RouteProps
    RouteProviderProps
    RouteQuery
    RouteQueryValue
    RouteRuntimeIntegration
    ServiceConfig
    SyncRequestHandler
    TrackSpec
    TrackUnit
    TranslateValidationErrorCode
    TypeInfoORMAPIController
    TypeInfoORMAPIRequestState
    TypeInfoORMAPIState
    TypeInfoORMServiceAPI
    UniversalRouteIngress
    UniversalRouteStrategy

    Functions - EasyLayout

    computeTrackPixels

    Functions - EasyLayout Supported syntax: - row lines: `<area area ...>, <row-track>` - column line: `\\ <col-track> <col-track> ...` - row track is optional for parity with current behavior.

    parseTemplate

    Functions - other

    buildHistoryPath
    buildQueryString
    buildRoutePath
    canUseBrowserHistory
    computeAreaBounds
    createAutoField
    createBrowserRouteAdapter
    createEasyLayout
    createFormRenderer
    createHistoryBackHandler
    createManualRouteAdapter
    createMemoryHistory
    createNativeRouteAdapter
    createRouteAdapterFromHistory
    createUniversalAdapter
    getApplicationStateIdentifier
    getApplicationStateModified
    getApplicationStateValue
    getChangedDependencyIndexes
    getEasyLayoutTemplateDetails
    getFieldKind
    getFullUrl
    getPascalCaseAreaName
    handleRequest
    mergeSuites
    parseHistoryPath
    requestHandlerFactory
    resolveSuite
    RouteProvider
    sendServiceRequest
    setApplicationStateModified
    setApplicationStateValue
    useApplicationStateLoader
    useApplicationStateValue
    useController
    useDebugDependencies
    useFormEngine
    useRouteContext
    useTypeInfoORMAPI
    validateAreas
    withRendererOverride
    wrapRouteAdapterWithPathResolver

    Variables

    ApplicationStateContext
    ApplicationStateProvider
    AutoForm
    AutoFormView
    defaultTranslateValidationErrorCode
    RouteContext