commit a9cfe61e53baac595ce39942b79abb512f4b9044
parent 36308e8d2d0866d2be9b8e94a3e80305d0b0aa5a
Author: triesap <triesap@radroots.dev>
Date: Fri, 21 Nov 2025 01:12:30 +0000
apps-lib-pwa: refactor map defaults with improved geocode zoom, remove farm contact input from farm details, add circle loading indicator
Diffstat:
7 files changed, 45 insertions(+), 18 deletions(-)
diff --git a/apps-lib-pwa/src/lib/components/farm/farms-add-detail.svelte b/apps-lib-pwa/src/lib/components/farm/farms-add-detail.svelte
@@ -88,21 +88,11 @@
input: {
placeholder: `${`${$ls(`icu.enter_*`, {
value: `${$ls(`common.farm_size`)}`.toLowerCase(),
- })}`} ${`${$ls(`units.area.${val_farmarea_unit}_pl`)}`.toLowerCase()}`,
+ })}`} ${`${$ls(
+ `units.area.${val_farmarea_unit}_pl`,
+ )}`.toLowerCase()}`,
field: form_fields.farm_size,
},
}}
/>
- <FormLineLedger
- bind:value={val_farmcontact}
- basis={{
- id: `farm_contact`,
- label: `${$ls(`common.farm_contact`)}`,
- input: {
- placeholder: `${$ls(`icu.enter_*`, {
- value: `${$ls(`common.contact_name`)}`.toLowerCase(),
- })}`,
- },
- }}
- />
</div>
diff --git a/apps-lib-pwa/src/lib/components/farm/farms-add-map.svelte b/apps-lib-pwa/src/lib/components/farm/farms-add-map.svelte
@@ -39,6 +39,7 @@
if (!geoc) return;
map_geoc = geoc;
if (map && map_geop) map.setCenter([map_geop.lng, map_geop.lat]);
+ map?.setZoom(13);
focus_map_marker();
} catch (e) {
handle_err(e, `on_mount`);
diff --git a/apps-lib-pwa/src/lib/components/form/entry-line.svelte b/apps-lib-pwa/src/lib/components/form/entry-line.svelte
@@ -6,7 +6,7 @@
type LoadingDimension,
} from "@radroots/apps-lib";
import InputValue from "../lib/input-value.svelte";
- import LoadSymbol from "../lib/load-symbol.svelte";
+ import LoadCircle from "../lib/load-circle.svelte";
import EntryWrap from "./entry-wrap.svelte";
let {
@@ -44,7 +44,7 @@
<div
class={`z-5 absolute right-0 top-0 flex flex-row h-full pr-4 justify-end items-center fade-in el-re`}
>
- <LoadSymbol
+ <LoadCircle
basis={{
dim: loading_dim,
}}
diff --git a/apps-lib-pwa/src/lib/components/lib/load-circle.svelte b/apps-lib-pwa/src/lib/components/lib/load-circle.svelte
@@ -0,0 +1,30 @@
+<script lang="ts">
+ import type { ILoadCircle } from "$lib/types/components/lib";
+ import { loading_style_map } from "$lib/utils/styles";
+ import { fmt_cl, Glyph } from "@radroots/apps-lib";
+
+ let {
+ basis = undefined,
+ }: {
+ basis?: ILoadCircle;
+ } = $props();
+
+ const styles = $derived(
+ basis?.dim
+ ? loading_style_map.get(basis?.dim)
+ : loading_style_map.get("sm"),
+ );
+</script>
+
+<div
+ class={`relative flex flex-row justify-center items-center h-[${styles?.dim_1}px] w-[${styles?.dim_1}px] fade-in el-re`}
+>
+ <Glyph
+ basis={{
+ classes: `${fmt_cl(
+ basis?.classes,
+ )} text-base text-ly0-gl-a animate-spin-slow`,
+ key: "circle-notch",
+ }}
+ />
+</div>
diff --git a/apps-lib-pwa/src/lib/components/map/map.svelte b/apps-lib-pwa/src/lib/components/map/map.svelte
@@ -33,9 +33,9 @@
bind:map
class="{fmt_cl(basis?.classes)} relative h-full w-full"
zoom={10}
- style={cfg_map.styles.base[$theme_mode || "light"]}
+ style={cfg_map.styles.base[$theme_mode ?? "light"]}
attributionControl={false}
- {interactive}
+ interactive={!!interactive}
{zoomOnDoubleClick}
>
{@render children()}
diff --git a/apps-lib-pwa/src/lib/index.ts b/apps-lib-pwa/src/lib/index.ts
@@ -20,6 +20,7 @@ export { default as CarouselItem } from "./components/lib/carousel-item.svelte";
export { default as Css } from "./components/lib/css.svelte";
export { default as InputPwa } from "./components/lib/input-pwa.svelte";
export { default as InputValue } from "./components/lib/input-value.svelte";
+export { default as LoadCircle } from "./components/lib/load-circle.svelte";
export { default as LoadSymbol } from "./components/lib/load-symbol.svelte";
export { default as LogoCircleSm } from "./components/lib/logo-circle-sm.svelte";
export { default as LogoCircle } from "./components/lib/logo-circle.svelte";
diff --git a/apps-lib-pwa/src/lib/types/components/lib.ts b/apps-lib-pwa/src/lib/types/components/lib.ts
@@ -1,4 +1,4 @@
-import type { CallbackRoute, GeometryScreenPositionHorizontal, ICb, ICbOpt, IClOpt, IDisabledOpt, IGlyph, IGlyphKey, ILoadingOpt, ILyOpt } from "@radroots/apps-lib";
+import type { CallbackRoute, GeometryScreenPositionHorizontal, ICb, ICbOpt, IClOpt, IDisabledOpt, IGlyph, IGlyphKey, ILoadingOpt, ILyOpt, LoadingDimension } from "@radroots/apps-lib";
import type { CallbackPromise, CallbackPromiseGeneric } from "@radroots/utils";
export type IButtonSimple = ILyOpt & {
@@ -51,3 +51,7 @@ export type ICarouselItem<T extends string> = IClOpt & {
callback_click?: CallbackPromiseGeneric<CarouselMouseEvent>;
callback_keydown?: CallbackPromiseGeneric<CarouselKeyboardEvent>;
};
+
+export type ILoadCircle = IClOpt & {
+ dim?: LoadingDimension;
+};
+\ No newline at end of file