mirror of
https://github.com/MAKS-IT-COM/maksit-webui.git
synced 2026-06-30 20:06:43 +02:00
1.7 KiB
1.7 KiB
Consuming @maksit/webui-* in Certs UI / Vault
Install:
npm install @maksit/webui-contracts @maksit/webui-core @maksit/webui-components
Wrap the app:
import { WebUiProvider, Loader, Authorization } from '@maksit/webui-components'
<WebUiProvider
api={{
getData: (url) => getData(url),
getDataWithoutLoader: (url) => getDataWithoutLoader(url),
postData: (url, body) => postData(url, body),
postDataWithoutLoader: (url, body) => postDataWithoutLoader(url, body),
}}
loader={{
disableLoader: () => dispatch(disableLoader()),
enableLoader: () => dispatch(enableLoader()),
}}
auth={{
identity,
hydrated,
login: (c) => dispatch(login(c)),
logout: (r) => dispatch(logout(r)),
setIdentityFromLocalStorage: () => dispatch(setIdentityFromLocalStorage()),
showUserOffcanvas,
setShowUserOffcanvas: () => dispatch(setShowUserOffcanvas()),
setHideUserOffcanvas: () => dispatch(setHideUserOffcanvas()),
}}
loading={loading}
>
<Loader />
<Authorization>{/* routes */}</Authorization>
</WebUiProvider>
API differences vs copied local folders
RemoteSelectBoxComponent: usesearchRoute(absolute API path string) instead ofapiRoute: ApiRoutes.SecretComponent: passgenerateSecretRoutewhenenableGenerateis true.- ACL: generic
parseAclEntry/parseAclEntriesfrom@maksit/webui-core; per-app entity maps andparse*AclEntrieslive in each WebUI project (models/acl.ts). - Identity request types and Zod schemas (
LoginRequest+LoginRequestSchema,LogoutRequest+LogoutRequestSchema,RefreshTokenRequest+RefreshTokenRequestSchema) live in@maksit/webui-contracts.