web_lib

Common web application libraries
git clone https://radroots.dev/git/web_lib.git
Log | Files | Refs | LICENSE

commit 9a45683f81d29911405a029867ac31df9d7a74f9
parent 658d81fd8467523cc60b8e4f0157faef2ca9190f
Author: triesap <137732411+triesap@users.noreply.github.com>
Date:   Fri, 18 Oct 2024 10:13:30 +0000

apps-lib: update entry line component, add locales, routes, edit types, utils

Diffstat:
Mapps-lib/src/lib/components/entry_line.svelte | 30++++++++++++++++++++++++++----
Mapps-lib/src/lib/locales/en/radroots-org.json | 10+++++-----
Mapps-lib/src/lib/types/client.ts | 4++++
Mapps-lib/src/lib/types/components.ts | 6++++--
Mapps-lib/src/lib/utils/carousel.ts | 3---
Mapps-lib/src/lib/utils/routes.ts | 10++++++----
6 files changed, 45 insertions(+), 18 deletions(-)

diff --git a/apps-lib/src/lib/components/entry_line.svelte b/apps-lib/src/lib/components/entry_line.svelte @@ -1,5 +1,12 @@ <script lang="ts"> - import { fmt_cl, Glyph, parse_layer, type IEntryLine } from "$lib"; + import { + fmt_cl, + Glyph, + Loading, + parse_layer, + type IEntryLine, + type ILoadingDimension, + } from "$lib"; import InputElement from "$lib/ui/input_element.svelte"; export let basis: IEntryLine; @@ -13,17 +20,32 @@ typeof layer === `boolean` ? `bg-transparent` : `bg-layer-${layer}-surface`; + $: clases_style = + basis.style === `guide` ? `h-entry_guide rounded-touch` : ``; + + let loading_dim: ILoadingDimension = `sm`; + $: loading_dim = basis.style === `guide` ? `md` : `sm`; </script> <div id={basis.id_wrap || null} - class={`${fmt_cl(basis.classes_wrap)} relative el-responsive entry-line-wrap px-2 ${classes_layer}`} + class={`${fmt_cl(basis.classes)} relative el-responsive entry-line-wrap px-2 ${classes_layer} ${clases_style}`} > <InputElement basis={basis.el} /> - {#if basis.notify_inline} + {#if basis.loading} + <div + class={`z-5 absolute el-responsive right-0 top-0 flex flex-row h-full pr-4 justify-end items-center fade-in`} + > + <Loading + basis={{ + dim: loading_dim, + }} + /> + </div> + {:else if basis.notify_inline} {#if `glyph` in basis.notify_inline} <div - class={`z-5 absolute right-0 top-0 flex flex-row h-full pr-3 justify-end items-center translate-x-[34px] fade-in transition-all`} + class={`z-5 absolute el-responsive right-0 top-0 flex flex-row h-full pr-3 justify-end items-center translate-x-[34px] fade-in`} > <Glyph basis={typeof basis.notify_inline.glyph === `string` diff --git a/apps-lib/src/lib/locales/en/radroots-org.json b/apps-lib/src/lib/locales/en/radroots-org.json @@ -1,13 +1,13 @@ { "error": { + "*-model-account-schema-active": "Invalid active specification", + "*-model-account-schema-nip_05": "Invalid profile name", + "*-model-account-schema-nostr_relays": "Invalid nostr relays", + "*-model-account-schema-public_key": "Invalid public key", "*-models-account-add-err": "The account could not be created", "*-models-account-delete-err": "The account could not be deleted", "*-models-account-get-err": "The account could not be found", "*-models-account-nip_05-unique": "The profile name is already registered", - "*-models-account-update-err": "The account could not be updated", - "*-model-account-schema-nip_05": "Invalid profile name", - "*-model-account-schema-active": "Invalid active specification", - "*-model-account-schema-public_key": "Invalid public key", - "*-model-account-schema-nostr_relays": "Invalid nostr relays" + "*-models-account-update-err": "The account could not be updated" } } \ No newline at end of file diff --git a/apps-lib/src/lib/types/client.ts b/apps-lib/src/lib/types/client.ts @@ -41,6 +41,10 @@ export type IRouteOpt = { route?: NavigationRoute; }; +export type ILoadingOpt = { + loading?: boolean; +}; + export type ICbGR<T> = ICbG<T> | IRoute export type IId = { diff --git a/apps-lib/src/lib/types/components.ts b/apps-lib/src/lib/types/components.ts @@ -1,5 +1,5 @@ import type { NavigationRoute } from "$lib/utils/routes"; -import type { CallbackPromise, CallbackPromiseGeneric, ICb, ICbG, ICbGOpt, ICbOpt, IClOpt, IClWrapOpt, IGl, IGlOpt, IIdOpt, IIdWrapOpt, ILabel, ILabelFieldsOpt, ILabelOpt, ILabelOptFieldsOpt, ILyOpt, ILyOptTs, NavigationParamTuple } from "./client"; +import type { CallbackPromise, CallbackPromiseGeneric, ICb, ICbG, ICbGOpt, ICbOpt, IClOpt, IClWrapOpt, IGl, IGlOpt, IIdOpt, IIdWrapOpt, ILabel, ILabelFieldsOpt, ILabelOpt, ILabelOptFieldsOpt, ILoadingOpt, ILyOpt, ILyOptTs, NavigationParamTuple } from "./client"; import type { GlyphKey, GlyphWeight, IGlyph, IInputElement, ITextAreaElement } from "./ui"; export type ITabsBasisList = IClOpt & { @@ -23,8 +23,10 @@ export type IFormField = { validate_keypress?: boolean; }; -export type IEntryLine = IIdWrapOpt & IClWrapOpt & { +export type IEntryLineStyle = `guide`; +export type IEntryLine = IIdWrapOpt & IClOpt & ILoadingOpt & { el: IInputElement; + style?: IEntryLineStyle notify_inline?: { glyph: GlyphKey | IGlyph; }; diff --git a/apps-lib/src/lib/utils/carousel.ts b/apps-lib/src/lib/utils/carousel.ts @@ -44,12 +44,9 @@ export const carousel_next = async <T extends string>( if (get_store(carousel_active)) return; carousel_active.set(true); const slide_item = get_slide_item<T>(view); - console.log(`slide_item `, slide_item) const slide_container = get_slide_container<T>(view); - console.log(`slide_container `, slide_container) if (slide_container && slide_item) { const slide_w = slide_item?.clientWidth || 0; - console.log(`slide_w `, slide_w) slide_container.scrollLeft += slide_w; carousel_index.set( Math.min(get_store(carousel_index) + 1, get_store(carousel_index_max)), diff --git a/apps-lib/src/lib/utils/routes.ts b/apps-lib/src/lib/utils/routes.ts @@ -10,8 +10,9 @@ export type NavigationRoute = | "/models/trade-product/add" | "/settings" | "/test" - | "/conf/error" - | "/conf/init"; + | "/device/error" + | "/device/init" + | "/device/test"; export function parse_route(route: string): NavigationRoute { switch (route) { @@ -26,8 +27,9 @@ export function parse_route(route: string): NavigationRoute { case "/models/trade-product/add": case "/settings": case "/test": - case "/conf/error": - case "/conf/init": + case "/device/error": + case "/device/init": + case "/device/test": return route; default: return "/";