From a15e2d62fe7dd5e5e7be78648a767f4e7c84a71f Mon Sep 17 00:00:00 2001 From: thislight Date: Wed, 4 Dec 2024 20:02:29 +0800 Subject: [PATCH 01/57] first prototype of MediaQuickview --- bun.lockb | Bin 301673 -> 301705 bytes package.json | 1 + src/platform/MediaQuickview.css | 69 ++++++++ src/platform/MediaQuickview.tsx | 179 ++++++++++++++++++++ src/timelines/toots/MediaAttachmentGrid.tsx | 43 ++--- 5 files changed, 261 insertions(+), 31 deletions(-) create mode 100644 src/platform/MediaQuickview.css create mode 100644 src/platform/MediaQuickview.tsx diff --git a/bun.lockb b/bun.lockb index 0645c92b80358a366bc2a50d54c803ad3054f6c8..bec25b12c78c96f732f0b82a831c37f2ac0aa4af 100755 GIT binary patch delta 23277 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 AA^-pY delta 23020 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 diff --git a/package.json b/package.json index 4e04928..6222ecd 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "@solid-primitives/map": "^0.4.13", "@solid-primitives/page-visibility": "^2.0.17", "@solid-primitives/resize-observer": "^2.0.26", + "@solid-primitives/rootless": "^1.4.5", "@solidjs/router": "^0.15.1", "@suid/icons-material": "^0.8.1", "@suid/material": "^0.18.0", diff --git a/src/platform/MediaQuickview.css b/src/platform/MediaQuickview.css new file mode 100644 index 0000000..b1ceb07 --- /dev/null +++ b/src/platform/MediaQuickview.css @@ -0,0 +1,69 @@ +.MediaQuickview__root { + display: contents; +} + +.MediaQuickview { + border: none; + position: fixed; + width: 100vw; + width: 100dvw; + height: 100vh; + height: 100dvh; + max-width: 100vw; + max-height: 100vh; + contain: content; + padding: 0; + + &::backdrop { + background: none; + } + + >.Scaffold>.topbar { + position: fixed; + left: 0; + right: 0; + + >* { + background-color: var(--tutu-color-surface); + color: var(--tutu-color-on-surface); + } + } + + >.Scaffold>.pages { + display: grid; + grid-auto-flow: column; + grid-auto-columns: 100%; + height: 100%; + width: 100%; + overflow: auto hidden; + scroll-snap-type: x mandatory; + scroll-snap-align: center; + scroll-snap-stop: always; + + + >.page { + width: 100%; + height: 100%; + max-width: 100vw; + max-height: 100vh; + contain: layout style size paint; + + >* { + display: block; + width: 100%; + height: 100%; + + object-fit: contain; + object-position: center; + } + } + } + + &.lightout { + >.Scaffold { + >.topbar { + visibility: hidden; + } + } + } +} \ No newline at end of file diff --git a/src/platform/MediaQuickview.tsx b/src/platform/MediaQuickview.tsx new file mode 100644 index 0000000..2a9d7e1 --- /dev/null +++ b/src/platform/MediaQuickview.tsx @@ -0,0 +1,179 @@ +import { createCallback, createSubRoot } from "@solid-primitives/rootless"; +import { + createRenderEffect, + createSignal, + Index, + Match, + onCleanup, + onMount, + Switch, + type Component, +} from "solid-js"; +import { render } from "solid-js/web"; +import Scaffold from "~material/Scaffold"; +import { isPointNotInRect } from "./dom"; +import "./MediaQuickview.css"; +import AppTopBar from "~material/AppTopBar"; +import { IconButton } from "@suid/material"; +import { Close } from "@suid/icons-material"; + +function renderIsolateMediaQuickview( + each: QuickviewMedia[], + index: number, + transitionFrom?: Element, +) { + createSubRoot((disposeAll) => { + let container: HTMLDivElement; + + createRenderEffect(() => { + container = document.createElement("div"); + container.setAttribute("role", "presentation"); + container.classList.add("MediaQuickview__root"); + document.querySelector("body")!.appendChild(container); + + onCleanup(() => container.remove()); + + const dispose = render(() => { + return ( + + ); + }, container); + + onCleanup(dispose); + }); + }); +} + +export function createMediaQuickview() { + return createCallback(renderIsolateMediaQuickview); +} + +function ImagePage(props: { src: string; alt?: string }) { + const [scale, setScale] = createSignal(1); + const [offsetX, setOffsetX] = createSignal(0); + const [offsetY, setOffsetY] = createSignal(0); + + const onWheel = (event: WheelEvent & { currentTarget: HTMLElement }) => { + // This is a de-facto standard for scaling: + // Browsers will simulate ctrl + wheel for two point scaling gesture. + if (event.ctrlKey) { + event.preventDefault(); + event.stopPropagation(); + + const offset = event.deltaY; + + setScale((x) => x + offset / event.currentTarget.clientHeight); + } + }; + + return ( + {props.alt} { + const { top, left, width, height } = + currentTarget.getBoundingClientRect(); + }} + > + ); +} + +export type QuickviewMedia = { + cat: "image" | "video" | "gifv" | "audio" | "unknown"; + src: string; + alt?: string; +}; + +export type MediaQuickviewProps = { + each: QuickviewMedia[]; + defaultIndex: number; + transitonFrom?: Element; + + onClose?(): void; +}; + +const MediaQuickview: Component = (props) => { + let root: HTMLDialogElement; + const [lightOut, setLightOut] = createSignal(false); + + function onDialogClick( + event: MouseEvent & { currentTarget: HTMLDialogElement }, + ) { + event.stopPropagation(); + + if ( + isPointNotInRect( + event.currentTarget.getBoundingClientRect(), + event.clientX, + event.clientY, + ) + ) { + event.currentTarget.close(); + } else { + setLightOut((x) => !x); + } + } + + return ( + { + root = e; + onMount(() => { + e.showModal(); + }); + }} + class="MediaQuickview" + classList={{ lightout: lightOut() }} + onClose={props.onClose} + onCancel={props.onClose} + onClick={onDialogClick} + > + + root.close()}> + + + + } + > +
{ + onMount(() => { + e.children.item(props.defaultIndex)!.scrollIntoView({ + behavior: "instant", + inline: "center", + }); + }); + }} + class="pages" + > + + {(item, index) => { + return ( +
+ + + + + +
+ ); + }} +
+
+
+
+ ); +}; + +export default MediaQuickview; diff --git a/src/timelines/toots/MediaAttachmentGrid.tsx b/src/timelines/toots/MediaAttachmentGrid.tsx index c9d72fc..6291a86 100644 --- a/src/timelines/toots/MediaAttachmentGrid.tsx +++ b/src/timelines/toots/MediaAttachmentGrid.tsx @@ -5,13 +5,9 @@ import { Match, Switch, createMemo, - createRenderEffect, createSignal, - onCleanup, untrack, } from "solid-js"; -import MediaViewer from "../MediaViewer"; -import { render } from "solid-js/web"; import { createElementSize, useWindowSize, @@ -24,6 +20,7 @@ import cardStyle from "~material/cards.module.css"; import { Preview } from "@suid/icons-material"; import { IconButton } from "@suid/material"; import Masonry from "~platform/Masonry"; +import { createMediaQuickview } from "~platform/MediaQuickview"; type ElementSize = { width: number; height: number }; @@ -58,39 +55,23 @@ const MediaAttachmentGrid: Component<{ sensitive?: boolean; }> = (props) => { const [rootRef, setRootRef] = createSignal(); - const [viewerIndex, setViewerIndex] = createSignal(); - const viewerOpened = () => typeof viewerIndex() !== "undefined"; const settings = useStore($settings); const windowSize = useWindowSize(); const [reveal, setReveal] = createSignal([] as number[]); - createRenderEffect(() => { - const vidx = viewerIndex(); - if (typeof vidx === "undefined") return; - const container = document.createElement("div"); - container.setAttribute("role", "presentation"); - document.body.appendChild(container); - const dispose = render(() => { - onCleanup(() => { - document.body.removeChild(container); - }); - - return ( - setViewerIndex()} - /> - ); - }, container); - - onCleanup(dispose); - }); + const openMediaQuickview = createMediaQuickview(); const openViewerFor = (index: number) => { - setViewerIndex(index); + openMediaQuickview( + props.attachments.map((item) => { + return { + cat: item.type, + src: item.url as string, + alt: item.description || undefined, + }; + }), + index, + ); }; const columnCount = () => { From c1467ee32afccdecd5bfa9df0826425568676ad3 Mon Sep 17 00:00:00 2001 From: thislight Date: Fri, 6 Dec 2024 20:46:44 +0800 Subject: [PATCH 02/57] MediaQuickview: supports grabbing --- src/platform/MediaQuickview.css | 15 +++- src/platform/MediaQuickview.tsx | 151 ++++++++++++++++++++++++++------ 2 files changed, 135 insertions(+), 31 deletions(-) diff --git a/src/platform/MediaQuickview.css b/src/platform/MediaQuickview.css index b1ceb07..0161fcf 100644 --- a/src/platform/MediaQuickview.css +++ b/src/platform/MediaQuickview.css @@ -46,15 +46,18 @@ height: 100%; max-width: 100vw; max-height: 100vh; - contain: layout style size paint; + contain: strict; + display: grid; + place-items: center; + + cursor: grab; >* { display: block; - width: 100%; - height: 100%; object-fit: contain; object-position: center; + transform-origin: 0 0; } } } @@ -66,4 +69,10 @@ } } } + + &.moving { + >.Scaffold>.pages>.page { + cursor: grabbing; + } + } } \ No newline at end of file diff --git a/src/platform/MediaQuickview.tsx b/src/platform/MediaQuickview.tsx index 2a9d7e1..74fabd2 100644 --- a/src/platform/MediaQuickview.tsx +++ b/src/platform/MediaQuickview.tsx @@ -1,5 +1,7 @@ import { createCallback, createSubRoot } from "@solid-primitives/rootless"; import { + batch, + createMemo, createRenderEffect, createSignal, Index, @@ -16,6 +18,7 @@ import "./MediaQuickview.css"; import AppTopBar from "~material/AppTopBar"; import { IconButton } from "@suid/material"; import { Close } from "@suid/icons-material"; +import { createStore, unwrap } from "solid-js/store"; function renderIsolateMediaQuickview( each: QuickviewMedia[], @@ -53,35 +56,19 @@ export function createMediaQuickview() { return createCallback(renderIsolateMediaQuickview); } -function ImagePage(props: { src: string; alt?: string }) { - const [scale, setScale] = createSignal(1); - const [offsetX, setOffsetX] = createSignal(0); - const [offsetY, setOffsetY] = createSignal(0); - - const onWheel = (event: WheelEvent & { currentTarget: HTMLElement }) => { - // This is a de-facto standard for scaling: - // Browsers will simulate ctrl + wheel for two point scaling gesture. - if (event.ctrlKey) { - event.preventDefault(); - event.stopPropagation(); - - const offset = event.deltaY; - - setScale((x) => x + offset / event.currentTarget.clientHeight); - } - }; - +function ImagePage(props: { + src: string; + alt?: string; + scale: number; + offsetX: number; + offsetY: number; +}) { return ( {props.alt} { - const { top, left, width, height } = - currentTarget.getBoundingClientRect(); + transform: `scale(${props.scale}) translateX(${-props.offsetX}px) translateY(${-props.offsetY}px)`, }} > ); @@ -101,8 +88,13 @@ export type MediaQuickviewProps = { onClose?(): void; }; +function clamp(value: T, min: T, max: T) { + return Math.max(Math.min(value, max), min); +} + const MediaQuickview: Component = (props) => { let root: HTMLDialogElement; + const [lightOut, setLightOut] = createSignal(false); function onDialogClick( @@ -123,6 +115,93 @@ const MediaQuickview: Component = (props) => { } } + const [transformations, setTransformations] = createStore( + [] as { + scale: number; + /** + * positive = the left edge move towards left + */ + offsetX: number; + /** + * positive = the top edge move towards top + */ + offsetY: number; + }[], + ); + + const transformationGetOrSetDefault = (index: number) => { + if (transformations.length <= index) { + setTransformations(index, { + scale: 1, + offsetX: 0, + offsetY: 0, + }); + } + return transformations[index]; + }; + + const onWheel = ( + index: number, + event: WheelEvent & { currentTarget: HTMLElement }, + ) => { + // This is a de-facto standard for scaling: + // Browsers will simulate ctrl + wheel for two point scaling gesture on trackpad. + if (event.ctrlKey) { + event.preventDefault(); + event.stopPropagation(); + + const { clientX, clientY, currentTarget, deltaY } = event; + + const offset = -deltaY; // not reversed wheel: wheel up = scale +, wheel down = scale - + const scaleOffset = offset / currentTarget.clientHeight; + + // Map the screen scale to the image viewport scale + const userOriginX = clientX - currentTarget.clientLeft; + const userOriginY = clientY - currentTarget.clientTop; + setTransformations(index, ({ scale, offsetX, offsetY }) => { + const nscale = scale + scaleOffset; + return { + offsetX: offsetX + (userOriginX * nscale - userOriginX), + offsetY: offsetY + (userOriginY * nscale - userOriginX), + scale: nscale, + }; + }); + } + }; + + const [isMoving, setIsMoving] = createSignal(false); + let movOriginX: number = 0, + movOriginY: number = 0; + + const onMouseDown = (event: MouseEvent) => { + event.preventDefault(); + setIsMoving(true); + movOriginX = event.clientX; + movOriginY = event.clientY; + }; + + const onMouseMove = (index: number, event: MouseEvent) => { + if (!isMoving()) { + return; + } + const dx = movOriginX - event.clientX; + const dy = movOriginY - event.clientY ; + + setTransformations(index, ({ offsetX, offsetY }) => { + return { + offsetX: offsetX + dx, + offsetY: offsetY + dy, + }; + }); + + movOriginX = event.clientX; + movOriginY = event.clientY; + }; + + const onMouseUp = (event: MouseEvent) => { + setIsMoving(false); + }; + return ( { @@ -132,7 +211,7 @@ const MediaQuickview: Component = (props) => { }); }} class="MediaQuickview" - classList={{ lightout: lightOut() }} + classList={{ lightout: lightOut(), moving: isMoving() }} onClose={props.onClose} onCancel={props.onClose} onClick={onDialogClick} @@ -140,7 +219,11 @@ const MediaQuickview: Component = (props) => { - root.close()}> + root.close()} + disableFocusRipple + > @@ -160,10 +243,22 @@ const MediaQuickview: Component = (props) => { {(item, index) => { return ( -
+
- +
From 148047db17e57356e61a82b6e20fa31833e25959 Mon Sep 17 00:00:00 2001 From: thislight Date: Sat, 7 Dec 2024 21:21:02 +0800 Subject: [PATCH 03/57] MediaQuickview: stop grabbing if mouse leaved --- src/platform/MediaQuickview.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/platform/MediaQuickview.tsx b/src/platform/MediaQuickview.tsx index 74fabd2..e06cf0c 100644 --- a/src/platform/MediaQuickview.tsx +++ b/src/platform/MediaQuickview.tsx @@ -249,6 +249,7 @@ const MediaQuickview: Component = (props) => { onMouseDown={onMouseDown} onMouseMove={[onMouseMove, index]} onMouseUp={onMouseUp} + onMouseLeave={onMouseUp} > From dfaecf3b6b20cab186f6d04c6c32ef987378d199 Mon Sep 17 00:00:00 2001 From: thislight Date: Sat, 7 Dec 2024 21:31:14 +0800 Subject: [PATCH 04/57] MediaQuickview: add recenter --- src/platform/MediaQuickview.css | 2 - src/platform/MediaQuickview.tsx | 66 ++++++++++++++++++++++++++++++--- 2 files changed, 61 insertions(+), 7 deletions(-) diff --git a/src/platform/MediaQuickview.css b/src/platform/MediaQuickview.css index 0161fcf..3ad798c 100644 --- a/src/platform/MediaQuickview.css +++ b/src/platform/MediaQuickview.css @@ -47,8 +47,6 @@ max-width: 100vw; max-height: 100vh; contain: strict; - display: grid; - place-items: center; cursor: grab; diff --git a/src/platform/MediaQuickview.tsx b/src/platform/MediaQuickview.tsx index e06cf0c..c4b2cde 100644 --- a/src/platform/MediaQuickview.tsx +++ b/src/platform/MediaQuickview.tsx @@ -56,19 +56,39 @@ export function createMediaQuickview() { return createCallback(renderIsolateMediaQuickview); } +type VisualMediaMeta = { + width: number; + height: number; +}; + function ImagePage(props: { src: string; alt?: string; scale: number; offsetX: number; offsetY: number; + + onMetadata?(metadata: VisualMediaMeta): void; }) { + const [loaded, setLoaded] = createSignal(false); + return ( { + const { naturalHeight, naturalWidth } = currentTarget; + + props.onMetadata?.({ + width: naturalWidth, + height: naturalHeight, + }); + + setLoaded(true); + }} src={props.src} alt={props.alt} style={{ transform: `scale(${props.scale}) translateX(${-props.offsetX}px) translateY(${-props.offsetY}px)`, + opacity: loaded() ? 1 : 0, }} > ); @@ -88,10 +108,6 @@ export type MediaQuickviewProps = { onClose?(): void; }; -function clamp(value: T, min: T, max: T) { - return Math.max(Math.min(value, max), min); -} - const MediaQuickview: Component = (props) => { let root: HTMLDialogElement; @@ -126,6 +142,11 @@ const MediaQuickview: Component = (props) => { * positive = the top edge move towards top */ offsetY: number; + + size?: { + width: number; + height: number; + }; }[], ); @@ -185,7 +206,7 @@ const MediaQuickview: Component = (props) => { return; } const dx = movOriginX - event.clientX; - const dy = movOriginY - event.clientY ; + const dy = movOriginY - event.clientY; setTransformations(index, ({ offsetX, offsetY }) => { return { @@ -202,6 +223,40 @@ const MediaQuickview: Component = (props) => { setIsMoving(false); }; + const recenter = (index: number) => { + const sz = transformations[index].size; + if (!sz) return; + const { width, height } = sz; + + const xscale = Math.min(window.innerWidth / width, 1); + const yscale = Math.min(window.innerHeight / height, 1); + + const finalScale = Math.min(xscale, yscale); + + const nheight = height * finalScale; + const top = (window.innerHeight - nheight) / 2; + + const nwidth = width * finalScale; + const left = (window.innerWidth - nwidth) / 2; + + setTransformations(index, { + scale: finalScale, + offsetX: -left, + offsetY: -top, + }); + }; + + const onMetadata = (index: number, { width, height }: VisualMediaMeta) => { + setTransformations(index, { + size: { + width, + height, + }, + }); + + recenter(index); + }; + return ( { @@ -254,6 +309,7 @@ const MediaQuickview: Component = (props) => { onMetadata(index, m)} src={item().src} alt={item().alt} scale={transformationGetOrSetDefault(index).scale} From 994edfa22cbc22d6ad0a4c2b83dd7c844d3041ce Mon Sep 17 00:00:00 2001 From: thislight Date: Sat, 21 Dec 2024 15:49:44 +0800 Subject: [PATCH 05/57] polyfills: sets Promise.prototype --- src/platform/polyfills.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform/polyfills.ts b/src/platform/polyfills.ts index 1af3341..6bbf700 100644 --- a/src/platform/polyfills.ts +++ b/src/platform/polyfills.ts @@ -22,7 +22,7 @@ if (typeof Promise.withResolvers === "undefined") { // Promise.withResolvers is generic and works with subclasses - the typescript built-in decl // could not handle the subclassing case. - Promise.withResolvers = function (this: AnyPromiseConstructor) { + (Promise.prototype as any).withResolvers = function (this: AnyPromiseConstructor) { let resolve!: PromiseWithResolvers["resolve"], reject!: PromiseWithResolvers["reject"]; // These variables are expected to be set after `new this()` From 189662b9e08fa966373538d228540d5290df56da Mon Sep 17 00:00:00 2001 From: thislight Date: Sat, 21 Dec 2024 17:14:51 +0800 Subject: [PATCH 06/57] TextField: minor type fix --- src/material/TextField.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/material/TextField.tsx b/src/material/TextField.tsx index df0f7fc..6dcfe00 100644 --- a/src/material/TextField.tsx +++ b/src/material/TextField.tsx @@ -28,14 +28,14 @@ const TextField: Component = (props) => { createEffect(() => { if (hasContent()) { - field.classList.add("float-label"); + field!.classList.add("float-label"); } else { - field.classList.remove("float-label"); + field!.classList.remove("float-label"); } }); onMount(() => { - setHasContent(input.value.length > 0); + setHasContent(input!.value.length > 0); }); const onInputChange = (e: { currentTarget: HTMLInputElement }) => { From 14beef39c2d707f59df2a78acd9723e3d40dba1a Mon Sep 17 00:00:00 2001 From: thislight Date: Sat, 21 Dec 2024 17:19:43 +0800 Subject: [PATCH 07/57] add webdriverio framework --- bun.lockb | Bin 301673 -> 510590 bytes package.json | 12 +- test/objects/accounts.ts | 25 +++ test/objects/page.ts | 15 ++ test/objects/timelines.ts | 7 + test/sign-in.spec.ts | 11 ++ test/tsconfig.json | 12 ++ tsconfig.json | 2 +- wdio.conf.ts | 327 ++++++++++++++++++++++++++++++++++++++ 9 files changed, 409 insertions(+), 2 deletions(-) create mode 100644 test/objects/accounts.ts create mode 100644 test/objects/page.ts create mode 100644 test/objects/timelines.ts create mode 100644 test/sign-in.spec.ts create mode 100644 test/tsconfig.json create mode 100644 wdio.conf.ts diff --git a/bun.lockb b/bun.lockb index 0645c92b80358a366bc2a50d54c803ad3054f6c8..69cacb89e67d73ef5c0c2db5300e6386abdd9119 100755 GIT binary patch literal 510590 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 O3~3wg%>PIK`F{Wy&OFut delta 52147 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 { + it("jumps to the sign-in page if no account signed in", async () => { + await IndexPage.open(""); + + expect(await browser.waitUntil(SignInPage.beTheCurrentPage)); + }); +}); diff --git a/test/tsconfig.json b/test/tsconfig.json new file mode 100644 index 0000000..753feaf --- /dev/null +++ b/test/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": ["../tsconfig.super.json"], + "compilerOptions": { + "types": [ + "node", + "@wdio/globals/types", + "@wdio/mocha-framework", + "@wdio/lighthouse-service" + ] + }, + "include": ["./**/*.ts", "../wdio.conf.ts"] +} diff --git a/tsconfig.json b/tsconfig.json index feaab58..90a351f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,6 +6,6 @@ "lib": ["ESNext", "DOM", "DOM.Iterable"] }, "include": ["./src/**/*.ts", "./src/**/*.tsx", "./*.ts", "./types/**.ts"], - "exclude": ["./src/serviceworker/**"], + "exclude": ["./src/serviceworker/**", "./wdio.conf.ts"], "extends": ["./tsconfig.super.json"] } diff --git a/wdio.conf.ts b/wdio.conf.ts new file mode 100644 index 0000000..1655053 --- /dev/null +++ b/wdio.conf.ts @@ -0,0 +1,327 @@ +const chromeDefaultOpts = process.env.CI + ? { + args: ["headless", "disable-gpu"], + } + : {}; + +const firefoxDefaultOpts = process.env.CI + ? { + args: ["-headless"], + } + : {}; + +export const config: WebdriverIO.Config = { + // + // ==================== + // Runner Configuration + // ==================== + // WebdriverIO supports running e2e tests as well as unit and component tests. + runner: "local", + tsConfigPath: "./test/tsconfig.json", + + // + // ================== + // Specify Test Files + // ================== + // Define which test specs should run. The pattern is relative to the directory + // of the configuration file being run. + // + // The specs are defined as an array of spec files (optionally using wildcards + // that will be expanded). The test for each spec file will be run in a separate + // worker process. In order to have a group of spec files run in the same worker + // process simply enclose them in an array within the specs array. + // + // The path of the spec files will be resolved relative from the directory of + // of the config file unless it's absolute. + // + specs: ["./test/**/*.spec.ts"], + // Patterns to exclude. + exclude: ["./test/objects/**/*"], + // + // ============ + // Capabilities + // ============ + // Define your capabilities here. WebdriverIO can run multiple capabilities at the same + // time. Depending on the number of capabilities, WebdriverIO launches several test + // sessions. Within your capabilities you can overwrite the spec and exclude options in + // order to group specific specs to a specific capability. + // + // First, you can define how many instances should be started at the same time. Let's + // say you have 3 different capabilities (Chrome, Firefox, and Safari) and you have + // set maxInstances to 1; wdio will spawn 3 processes. Therefore, if you have 10 spec + // files and you set maxInstances to 10, all spec files will get tested at the same time + // and 30 processes will get spawned. The property handles how many capabilities + // from the same test should run tests. + // + maxInstances: 1, + // + // If you have trouble getting all important capabilities together, check out the + // Sauce Labs platform configurator - a great tool to configure your capabilities: + // https://saucelabs.com/platform/platform-configurator + // + capabilities: [ + { + browserName: "chrome", + "goog:chromeOptions": chromeDefaultOpts, + }, + // Could not find a reliable way to use old chrome, + // skipped here. + { + browserName: "firefox", + "moz:firefoxOptions": firefoxDefaultOpts, + }, + { + browserName: "firefox", + browserVersion: "esr_115.18.0esr", + "moz:firefoxOptions": firefoxDefaultOpts, + }, + ...(process.env.TEST_SAFARI + ? [ + { + browserName: "safari", + }, + { + browserName: "safari technology preview", + }, + ] + : []), + ], + + // + // =================== + // Test Configurations + // =================== + // Define all options that are relevant for the WebdriverIO instance here + // + // Level of logging verbosity: trace | debug | info | warn | error | silent + logLevel: "info", + // + // Set specific log levels per logger + // loggers: + // - webdriver, webdriverio + // - @wdio/browserstack-service, @wdio/lighthouse-service, @wdio/sauce-service + // - @wdio/mocha-framework, @wdio/jasmine-framework + // - @wdio/local-runner + // - @wdio/sumologic-reporter + // - @wdio/cli, @wdio/config, @wdio/utils + // Level of logging verbosity: trace | debug | info | warn | error | silent + // logLevels: { + // webdriver: 'info', + // '@wdio/appium-service': 'info' + // }, + // + // If you only want to run your tests until a specific amount of tests have failed use + // bail (default is 0 - don't bail, run all tests). + bail: 0, + // + // Set a base URL in order to shorten url command calls. If your `url` parameter starts + // with `/`, the base url gets prepended, not including the path portion of your baseUrl. + // If your `url` parameter starts without a scheme or `/` (like `some/path`), the base url + // gets prepended directly. + // baseUrl: 'http://localhost:4698', + // + // Default timeout for all waitFor* commands. + waitforTimeout: 10000, + // + // Default timeout in milliseconds for request + // if browser driver or grid doesn't send response + connectionRetryTimeout: 120000, + // + // Default request retries count + connectionRetryCount: 3, + // + // Test runner services + // Services take over a specific job you don't want to take care of. They enhance + // your test setup with almost no effort. Unlike plugins, they don't add new + // commands. Instead, they hook themselves up into the test process. + services: ["vite", "lighthouse"], + + // Framework you want to run your specs with. + // The following are supported: Mocha, Jasmine, and Cucumber + // see also: https://webdriver.io/docs/frameworks + // + // Make sure you have the wdio adapter package for the specific framework installed + // before running any tests. + framework: "mocha", + + // + // The number of times to retry the entire specfile when it fails as a whole + // specFileRetries: 1, + // + // Delay in seconds between the spec file retry attempts + // specFileRetriesDelay: 0, + // + // Whether or not retried spec files should be retried immediately or deferred to the end of the queue + // specFileRetriesDeferred: false, + // + // Test reporter for stdout. + // The only one supported by default is 'dot' + // see also: https://webdriver.io/docs/dot-reporter + reporters: ["spec"], + + // Options to be passed to Mocha. + // See the full list at http://mochajs.org/ + mochaOpts: { + ui: "bdd", + timeout: 60000, + }, + + // + // ===== + // Hooks + // ===== + // WebdriverIO provides several hooks you can use to interfere with the test process in order to enhance + // it and to build services around it. You can either apply a single function or an array of + // methods to it. If one of them returns with a promise, WebdriverIO will wait until that promise got + // resolved to continue. + /** + * Gets executed once before all workers get launched. + * @param {object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + */ + // onPrepare: function (config, capabilities) { + // }, + /** + * Gets executed before a worker process is spawned and can be used to initialize specific service + * for that worker as well as modify runtime environments in an async fashion. + * @param {string} cid capability id (e.g 0-0) + * @param {object} caps object containing capabilities for session that will be spawn in the worker + * @param {object} specs specs to be run in the worker process + * @param {object} args object that will be merged with the main configuration once worker is initialized + * @param {object} execArgv list of string arguments passed to the worker process + */ + // onWorkerStart: function (cid, caps, specs, args, execArgv) { + // }, + /** + * Gets executed just after a worker process has exited. + * @param {string} cid capability id (e.g 0-0) + * @param {number} exitCode 0 - success, 1 - fail + * @param {object} specs specs to be run in the worker process + * @param {number} retries number of retries used + */ + // onWorkerEnd: function (cid, exitCode, specs, retries) { + // }, + /** + * Gets executed just before initialising the webdriver session and test framework. It allows you + * to manipulate configurations depending on the capability or spec. + * @param {object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that are to be run + * @param {string} cid worker id (e.g. 0-0) + */ + // beforeSession: function (config, capabilities, specs, cid) { + // }, + /** + * Gets executed before test execution begins. At this point you can access to all global + * variables like `browser`. It is the perfect place to define custom commands. + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that are to be run + * @param {object} browser instance of created browser/device session + */ + // before: function (capabilities, specs) { + // }, + /** + * Runs before a WebdriverIO command gets executed. + * @param {string} commandName hook command name + * @param {Array} args arguments that command would receive + */ + // beforeCommand: function (commandName, args) { + // }, + /** + * Hook that gets executed before the suite starts + * @param {object} suite suite details + */ + // beforeSuite: function (suite) { + // }, + /** + * Function to be executed before a test (in Mocha/Jasmine) starts. + */ + // beforeTest: function (test, context) { + // }, + /** + * Hook that gets executed _before_ a hook within the suite starts (e.g. runs before calling + * beforeEach in Mocha) + */ + // beforeHook: function (test, context, hookName) { + // }, + /** + * Hook that gets executed _after_ a hook within the suite starts (e.g. runs after calling + * afterEach in Mocha) + */ + // afterHook: function (test, context, { error, result, duration, passed, retries }, hookName) { + // }, + /** + * Function to be executed after a test (in Mocha/Jasmine only) + * @param {object} test test object + * @param {object} context scope object the test was executed with + * @param {Error} result.error error object in case the test fails, otherwise `undefined` + * @param {*} result.result return object of test function + * @param {number} result.duration duration of test + * @param {boolean} result.passed true if test has passed, otherwise false + * @param {object} result.retries information about spec related retries, e.g. `{ attempts: 0, limit: 0 }` + */ + // afterTest: function(test, context, { error, result, duration, passed, retries }) { + // }, + + /** + * Hook that gets executed after the suite has ended + * @param {object} suite suite details + */ + // afterSuite: function (suite) { + // }, + /** + * Runs after a WebdriverIO command gets executed + * @param {string} commandName hook command name + * @param {Array} args arguments that command would receive + * @param {number} result 0 - command success, 1 - command error + * @param {object} error error object if any + */ + // afterCommand: function (commandName, args, result, error) { + // }, + /** + * Gets executed after all tests are done. You still have access to all global variables from + * the test. + * @param {number} result 0 - test pass, 1 - test fail + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that ran + */ + // after: function (result, capabilities, specs) { + // }, + /** + * Gets executed right after terminating the webdriver session. + * @param {object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that ran + */ + // afterSession: function (config, capabilities, specs) { + // }, + /** + * Gets executed after all workers got shut down and the process is about to exit. An error + * thrown in the onComplete hook will result in the test run failing. + * @param {object} exitCode 0 - success, 1 - fail + * @param {object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {} results object containing test results + */ + // onComplete: function(exitCode, config, capabilities, results) { + // }, + /** + * Gets executed when a refresh happens. + * @param {string} oldSessionId session ID of the old session + * @param {string} newSessionId session ID of the new session + */ + // onReload: function(oldSessionId, newSessionId) { + // } + /** + * Hook that gets executed before a WebdriverIO assertion happens. + * @param {object} params information about the assertion to be executed + */ + // beforeAssertion: function(params) { + // } + /** + * Hook that gets executed after a WebdriverIO assertion happened. + * @param {object} params information about the assertion that was executed, including its results + */ + // afterAssertion: function(params) { + // } +}; From 157fbade81565721c18f33a0342c918902c0596e Mon Sep 17 00:00:00 2001 From: thislight Date: Sat, 21 Dec 2024 17:28:53 +0800 Subject: [PATCH 08/57] Home: fix minor type error --- src/timelines/Home.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/timelines/Home.tsx b/src/timelines/Home.tsx index a016e45..99e4fd1 100644 --- a/src/timelines/Home.tsx +++ b/src/timelines/Home.tsx @@ -4,6 +4,7 @@ import { onMount, type ParentComponent, createRenderEffect, + createEffect, } from "solid-js"; import { useDocumentTitle } from "../utils"; import Scaffold from "~material/Scaffold"; @@ -58,6 +59,7 @@ const Home: ParentComponent = (props) => { const recalculateTabIndicator = () => { scrollEventLockReleased = false; try { + if (!panelList!) return; const { x: panelX, width: panelWidth } = panelList.getBoundingClientRect(); let minIdx = +Infinity, @@ -95,11 +97,9 @@ const Home: ParentComponent = (props) => { } }; - createRenderEffect(() => { + createEffect(() => { makeEventListener(window, "resize", requestRecalculateTabIndicator); - }); - onMount(() => { requestAnimationFrame(recalculateTabIndicator); }); @@ -110,7 +110,7 @@ const Home: ParentComponent = (props) => { }; const onTabClick = (idx: number) => { - const items = panelList.querySelectorAll(".tab-panel"); + const items = panelList!.querySelectorAll(".tab-panel"); if (items.length > idx) { items.item(idx).scrollIntoView({ block: "start", behavior: "smooth" }); } From ee679937962fa3d82a4e27da232f866825b42019 Mon Sep 17 00:00:00 2001 From: thislight Date: Sat, 21 Dec 2024 17:37:29 +0800 Subject: [PATCH 09/57] StackedRouter: use isolated unique id --- src/platform/StackedRouter.tsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/platform/StackedRouter.tsx b/src/platform/StackedRouter.tsx index 75e7594..866118b 100644 --- a/src/platform/StackedRouter.tsx +++ b/src/platform/StackedRouter.tsx @@ -21,6 +21,12 @@ import { makeEventListener } from "@solid-primitives/event-listener"; import { useWindowSize } from "@solid-primitives/resize-observer"; import { isPointNotInRect } from "./dom"; +let uniqueCounter = 0; + +function createUniqueId() { + return `sr-${uniqueCounter++}`; +} + export type StackedRouterProps = Omit; export type StackFrame = { From ee31c38f32d57d5511a4439d130e23083ed9a64d Mon Sep 17 00:00:00 2001 From: thislight Date: Sat, 21 Dec 2024 20:19:02 +0800 Subject: [PATCH 10/57] fix #52: correct the StackedRouter on 'replace' --- src/masto/clients.ts | 13 ++++---- src/platform/StackedRouter.tsx | 58 ++++++++++++++++++++++++++-------- test/objects/accounts.ts | 5 ++- test/sign-in.spec.ts | 4 ++- wdio.conf.ts | 6 ++-- 5 files changed, 61 insertions(+), 25 deletions(-) diff --git a/src/masto/clients.ts b/src/masto/clients.ts index f853fa7..fc26ee5 100644 --- a/src/masto/clients.ts +++ b/src/masto/clients.ts @@ -4,6 +4,7 @@ import { createMemo, createRenderEffect, createResource, + untrack, useContext, } from "solid-js"; import { Account } from "../accounts/stores"; @@ -57,15 +58,15 @@ export const Provider = Context.Provider; export function useSessions() { const sessions = useSessionsRaw(); - const {push} = useNavigator(); + const { push } = useNavigator(); const location = useLocation(); createRenderEffect(() => { - if (sessions().length > 0) return; - push( - "/accounts/sign-in?back=" + encodeURIComponent(location.pathname), - { replace: "all" }, - ); + if (untrack(() => sessions().length) > 0) return; + + push("/accounts/sign-in?back=" + encodeURIComponent(location.pathname), { + replace: true, + }); }); return sessions; diff --git a/src/platform/StackedRouter.tsx b/src/platform/StackedRouter.tsx index 866118b..f79da9a 100644 --- a/src/platform/StackedRouter.tsx +++ b/src/platform/StackedRouter.tsx @@ -1,10 +1,14 @@ -import { StaticRouter, type RouterProps } from "@solidjs/router"; +import { + Router, + type RouterProps, + type StaticRouterProps, + createRouter, +} from "@solidjs/router"; import { Component, createContext, createMemo, createRenderEffect, - createUniqueId, Index, onMount, Show, @@ -12,6 +16,9 @@ import { useContext, onCleanup, type Accessor, + children, + createSignal, + createRoot, } from "solid-js"; import { createStore, unwrap } from "solid-js/store"; import "./StackedRouter.css"; @@ -393,6 +400,24 @@ function animateUntil( execStep(); } +function noOp() {} + +function StaticRouter(props: StaticRouterProps) { + const url = () => props.url || ""; + + // TODO: support onBeforeLeave, see + // https://github.com/solidjs/solid-router/blob/main/src/routers/Router.ts + + return createRouter({ + get: url, + set: noOp, + init(notify) { + createRenderEffect(() => notify(url())); + return noOp; + }, + })(props); +} + /** * The cache key of saved stack for hot reload. * @@ -463,7 +488,7 @@ const StackedRouter: Component = (oprops) => { }; createRenderEffect(() => { - loadStack() + loadStack(); }); } @@ -478,10 +503,13 @@ const StackedRouter: Component = (oprops) => { }; const replace = opts?.replace; - if (replace === "all") { + if (replace === "all" || stack.length === 0) { mutStack([frame]); + } else if (replace) { + const idx = stack.length - 1; + mutStack(idx, frame); } else { - mutStack(replace ? stack.length - 1 : stack.length, frame); + mutStack(stack.length, frame); } const savedStack = serializableStack(stack); @@ -547,13 +575,15 @@ const StackedRouter: Component = (oprops) => { } }); - createRenderEffect(() => { - if (stack.length === 0) { - pushFrame(window.location.pathname, { - replace: "all", - }); - } - }); + createRenderEffect(() => + untrack(() => { + if (stack.length === 0) { + pushFrame(window.location.pathname, { + replace: "all", + }); + } + }), + ); createRenderEffect(() => { makeEventListener(window, "popstate", (event) => { @@ -642,7 +672,9 @@ const StackedRouter: Component = (oprops) => { const currentFrame = () => { return { index, - frame: frame(), + get frame() { + return frame(); + }, }; }; diff --git a/test/objects/accounts.ts b/test/objects/accounts.ts index ff2c30b..117a878 100644 --- a/test/objects/accounts.ts +++ b/test/objects/accounts.ts @@ -9,11 +9,10 @@ export class SignInPage extends Page { return $("[name=serverUrl]"); } - public static async beTheCurrentPage() { + public static async urlIsTheCurrent() { const urlMatched = new URL(await browser.getUrl()).pathname === "/accounts/sign-in"; - const elementShowed = await this.serverUrlInput.isDisplayed(); - return urlMatched && elementShowed; + return urlMatched; } /** diff --git a/test/sign-in.spec.ts b/test/sign-in.spec.ts index c1ac93d..2f5068c 100644 --- a/test/sign-in.spec.ts +++ b/test/sign-in.spec.ts @@ -6,6 +6,8 @@ describe("The index page", () => { it("jumps to the sign-in page if no account signed in", async () => { await IndexPage.open(""); - expect(await browser.waitUntil(SignInPage.beTheCurrentPage)); + expect(await browser.waitUntil(SignInPage.urlIsTheCurrent)); + + expect(await browser.waitUntil(SignInPage.serverUrlInput.isDisplayed)); }); }); diff --git a/wdio.conf.ts b/wdio.conf.ts index 1655053..1f6b1cf 100644 --- a/wdio.conf.ts +++ b/wdio.conf.ts @@ -70,11 +70,13 @@ export const config: WebdriverIO.Config = { browserName: "firefox", "moz:firefoxOptions": firefoxDefaultOpts, }, - { + // The browser.url() always timeout on 115. + // Idk what the problem is, let skip it for now. + /* { browserName: "firefox", browserVersion: "esr_115.18.0esr", "moz:firefoxOptions": firefoxDefaultOpts, - }, + }, */ ...(process.env.TEST_SAFARI ? [ { From 3444068fd81a4ce541a6388f2c0e45a64c0a2fca Mon Sep 17 00:00:00 2001 From: thislight Date: Mon, 23 Dec 2024 18:16:52 +0800 Subject: [PATCH 11/57] Settings: jump to sign in after signed out --- src/settings/Settings.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/settings/Settings.tsx b/src/settings/Settings.tsx index 188a61d..f783e7a 100644 --- a/src/settings/Settings.tsx +++ b/src/settings/Settings.tsx @@ -163,7 +163,7 @@ const Settings: Component = () => { }>, () => import(`./i18n/generic.json`), ); - const { pop } = useNavigator(); + const { pop, push } = useNavigator(); const settings$ = useStore($settings); const { needRefresh } = useServiceWorker(); const dateFnLocale = useDateFnLocale(); @@ -172,6 +172,10 @@ const Settings: Component = () => { const doSignOut = (acct: Account) => { signOut((a) => a.site === acct.site && a.accessToken === acct.accessToken); + + if (profiles().length == 0) { + push("/accounts/sign-in", { replace: "all" }); + } }; css` From a7bca9bd676d68d5cdca72c7a6286f78cc9a2573 Mon Sep 17 00:00:00 2001 From: thislight Date: Mon, 23 Dec 2024 18:30:58 +0800 Subject: [PATCH 12/57] StackedRouter: initializing stack supports query --- src/platform/StackedRouter.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/platform/StackedRouter.tsx b/src/platform/StackedRouter.tsx index f79da9a..c8f0417 100644 --- a/src/platform/StackedRouter.tsx +++ b/src/platform/StackedRouter.tsx @@ -578,7 +578,11 @@ const StackedRouter: Component = (oprops) => { createRenderEffect(() => untrack(() => { if (stack.length === 0) { - pushFrame(window.location.pathname, { + const parts = [window.location.pathname] as string[] + if (window.location.search) { + parts.push("?", window.location.search) + } + pushFrame(parts.join(''), { replace: "all", }); } From 771de51228807e9f9ad479b3c4db30314e1fdd13 Mon Sep 17 00:00:00 2001 From: thislight Date: Mon, 23 Dec 2024 18:31:56 +0800 Subject: [PATCH 13/57] accounts/SignIn: various visual improvement --- src/accounts/SignIn.css | 27 +++++++++++++++++++++++++++ src/accounts/SignIn.tsx | 16 +++++----------- 2 files changed, 32 insertions(+), 11 deletions(-) create mode 100644 src/accounts/SignIn.css diff --git a/src/accounts/SignIn.css b/src/accounts/SignIn.css new file mode 100644 index 0000000..11f467a --- /dev/null +++ b/src/accounts/SignIn.css @@ -0,0 +1,27 @@ +.SignIn { + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + width: 448px; + + @media (max-width: 600px) { + & { + position: static; + height: 100vh; + width: 100%; + transform: none; + overflow: auto; + } + } + + >.key-content { + height: 100%; + + >form { + display: flex; + flex-flow: column; + gap: 16px; + } + } +} \ No newline at end of file diff --git a/src/accounts/SignIn.tsx b/src/accounts/SignIn.tsx index c8699d2..628e490 100644 --- a/src/accounts/SignIn.tsx +++ b/src/accounts/SignIn.tsx @@ -18,6 +18,7 @@ import { createRestAPIClient } from "masto"; import { getOrRegisterApp } from "./stores"; import { useSearchParams } from "@solidjs/router"; import { $settings } from "../settings/stores"; +import "./SignIn.css"; type ErrorParams = { error: string; @@ -36,13 +37,6 @@ const SignIn: Component = () => { const [targetSiteTitle, setTargetSiteTitle] = createSignal(""); useDocumentTitle("Sign In"); - css` - form { - display: flex; - flex-flow: column; - gap: 16px; - } - `; const serverUrl = () => { const url = rawServerUrl(); @@ -121,19 +115,19 @@ const SignIn: Component = () => { }; return ( -
+

Authorization is failed.

{params.errorDescription}

- Please try again later. If the problem persist, you can seek for + Please try again later. If the problem persists, you can ask for help from the server administrator.

{
- + ); }; From 71bdb216020af48436779d51bf8092cf8dc2d8c1 Mon Sep 17 00:00:00 2001 From: thislight Date: Mon, 23 Dec 2024 18:33:18 +0800 Subject: [PATCH 14/57] StackedRouter: fix duplicated '?' symbol --- src/platform/StackedRouter.tsx | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/platform/StackedRouter.tsx b/src/platform/StackedRouter.tsx index c8f0417..df3d522 100644 --- a/src/platform/StackedRouter.tsx +++ b/src/platform/StackedRouter.tsx @@ -1,5 +1,4 @@ import { - Router, type RouterProps, type StaticRouterProps, createRouter, @@ -16,9 +15,6 @@ import { useContext, onCleanup, type Accessor, - children, - createSignal, - createRoot, } from "solid-js"; import { createStore, unwrap } from "solid-js/store"; import "./StackedRouter.css"; @@ -578,11 +574,11 @@ const StackedRouter: Component = (oprops) => { createRenderEffect(() => untrack(() => { if (stack.length === 0) { - const parts = [window.location.pathname] as string[] + const parts = [window.location.pathname] as string[]; if (window.location.search) { - parts.push("?", window.location.search) + parts.push(window.location.search); } - pushFrame(parts.join(''), { + pushFrame(parts.join(""), { replace: "all", }); } From 97bd6da9ac3e4aec29d73d4bf5cae1dc6d513dbf Mon Sep 17 00:00:00 2001 From: thislight Date: Thu, 26 Dec 2024 20:04:26 +0800 Subject: [PATCH 15/57] add CachedFetch --- src/platform/cache.ts | 145 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 src/platform/cache.ts diff --git a/src/platform/cache.ts b/src/platform/cache.ts new file mode 100644 index 0000000..5d5b10a --- /dev/null +++ b/src/platform/cache.ts @@ -0,0 +1,145 @@ +import { addMinutes, formatRFC7231 } from "date-fns"; +import { + createRenderEffect, + createResource, + untrack, +} from "solid-js"; + +export function createCacheBucket(name: string) { + let bucket: Cache | undefined; + + return async () => { + if (bucket) { + return bucket; + } + + bucket = await self.caches.open(name); + + return bucket; + }; +} + +export type FetchRequest = { + url: string; + headers?: HeadersInit | Headers; +}; + +async function searchCache(request: Request) { + return await self.caches.match(request); +} + +/** + * Create a {@link fetch} helper with additional caching support. + */ +export class CachedFetch< + Transformer extends (response: Response) => any, + Keyer extends (...args: any[]) => FetchRequest, +> { + private cacheBucket: () => Promise; + keyFor: Keyer; + private transform: Transformer; + + constructor( + cacheBucket: () => Promise, + keyFor: Keyer, + tranformer: Transformer, + ) { + this.cacheBucket = cacheBucket; + this.keyFor = keyFor; + this.transform = tranformer; + } + + private async validateCache(request: Request) { + const buk = await this.cacheBucket(); + const response = await fetch(request); + buk.put(request, response.clone()); + return response; + } + + private request(...args: Parameters) { + const { url, ...init } = this.keyFor(...args); + const request = new Request(url, init); + return request; + } + + /** + * Race between the cache and the network result, + * use the fastest result. + * + * The cache will be revalidated. + */ + async fastest( + ...args: Parameters + ): Promise>> { + const request = this.request(...args); + const validating = this.validateCache(request); + + const searching = searchCache(request); + + const earlyResult = await Promise.race([validating, searching]); + + if (earlyResult) { + return await this.transform(earlyResult); + } + + return await this.transform(await validating); + } + + /** + * Validate and return the result. + */ + async validate( + ...args: Parameters + ): Promise>> { + return await this.transform( + await this.validateCache(this.request(...args)), + ); + } + + /** Set a response as the cache. + * Recommend to set `Expires` or `Cache-Control` to limit its live time. + */ + async set(key: Parameters, response: Response) { + const buk = await this.cacheBucket(); + await buk.put(this.request(...key), response); + } + + /** Set a json object as the cache. + * Only available for 5 minutes. + */ + async setJson(key: Parameters, object: unknown) { + const response = new Response(JSON.stringify(object), { + status: 200, + headers: { + "Content-Type": "application/json", + Expires: formatRFC7231(addMinutes(new Date(), 5)), + "X-Cache-Src": "set", + }, + }); + + await this.set(key, response); + } + + /** + * Return a resource, using the cache at first, and revalidate + * later. + */ + cachedAndRevalidate(args: () => Parameters) { + const res = createResource(args, (p) => this.validate(...p)); + + const checkCacheIfStillLoading = async () => { + const saved = await searchCache(this.request(...args())); + if (!saved) { + return; + } + const transformed = await this.transform(saved); + if (res[0].loading) { + res[1].mutate(transformed); + } + }; + + createRenderEffect(() => void untrack(() => checkCacheIfStillLoading())); + + return res; + } +} From 5ab0d4d0a203fe86ef596b0819eea9a414798e2f Mon Sep 17 00:00:00 2001 From: thislight Date: Thu, 26 Dec 2024 20:05:41 +0800 Subject: [PATCH 16/57] masto: add fetchStatus * also add types RemoteServer and AccountKey --- src/accounts/stores.ts | 17 +++++++++++++++-- src/masto/base.ts | 23 +++++++++++++++++++++++ src/masto/statuses.ts | 30 ++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 src/masto/base.ts create mode 100644 src/masto/statuses.ts diff --git a/src/accounts/stores.ts b/src/accounts/stores.ts index c44a012..6a9fdca 100644 --- a/src/accounts/stores.ts +++ b/src/accounts/stores.ts @@ -6,10 +6,19 @@ import { } from "masto"; import { createMastoClientFor } from "../masto/clients"; -export type Account = { +export type RemoteServer = { site: string; - accessToken: string; +}; +export type AccountKey = RemoteServer & { + accessToken: string; +}; + +export function isAccountKey(object: RemoteServer): object is AccountKey { + return !!(object as Record)["accessToken"]; +} + +export type Account = AccountKey & { tokenType: string; scope: string; createdAt: number; @@ -17,6 +26,10 @@ export type Account = { inf?: mastodon.v1.AccountCredentials; }; +export function isAccount(object: AccountKey) { + return !!(object as Record)["tokenType"]; +} + export const $accounts = persistentAtom("accounts", [], { encode: JSON.stringify, decode: JSON.parse, diff --git a/src/masto/base.ts b/src/masto/base.ts new file mode 100644 index 0000000..823fad7 --- /dev/null +++ b/src/masto/base.ts @@ -0,0 +1,23 @@ +import { createCacheBucket } from "~platform/cache"; + +export const cacheBucket = /* @__PURE__ */ createCacheBucket("mastodon"); + +export function toSmallCamelCase(object: T) :T { + if (!object || typeof object !== "object") { + return object; + } else if (Array.isArray(object)) { + return object.map(toSmallCamelCase) as T + } + + const result = {} as Record; + for (const k in object) { + const value = toSmallCamelCase(object[k]) + const nk = + typeof k === "string" + ? k.replace(/_(.)/g, (_, match) => match.toUpperCase()) + : k; + result[nk] = value; + } + + return result as T; +} diff --git a/src/masto/statuses.ts b/src/masto/statuses.ts new file mode 100644 index 0000000..91fdc7a --- /dev/null +++ b/src/masto/statuses.ts @@ -0,0 +1,30 @@ +import { CachedFetch } from "~platform/cache"; +import { cacheBucket, toSmallCamelCase } from "./base"; +import { + isAccountKey, + type RemoteServer, +} from "../accounts/stores"; +import type { mastodon } from "masto"; + + + +export const fetchStatus = /* @__PURE__ */ new CachedFetch( + cacheBucket, + (session: RemoteServer, id: string) => { + const headers = new Headers({ + Accept: "application/json", + }); + if (isAccountKey(session)) { + headers.set("Authorization", `Bearer ${session.accessToken}`); + } + return { + url: new URL(`./api/v1/statuses/${id}`, session.site).toString(), + headers, + }; + }, + async (response) => { + return toSmallCamelCase( + await response.json(), + ) as unknown as mastodon.v1.Status; + }, +); From 6dd60657119c4f12eff3133112d052241934ba3a Mon Sep 17 00:00:00 2001 From: thislight Date: Thu, 26 Dec 2024 20:09:03 +0800 Subject: [PATCH 17/57] TootBottomSheet: use new cache semantic --- src/masto/clients.ts | 4 +-- src/timelines/TootBottomSheet.tsx | 51 +++++++------------------------ src/timelines/TootComposer.tsx | 14 ++++----- src/timelines/TootList.tsx | 3 +- 4 files changed, 22 insertions(+), 50 deletions(-) diff --git a/src/masto/clients.ts b/src/masto/clients.ts index fc26ee5..35789ef 100644 --- a/src/masto/clients.ts +++ b/src/masto/clients.ts @@ -115,7 +115,7 @@ export function useDefaultSession() { * - If the username is not present, any session on the site is returned; or, * - If no available session available for the pattern, an unauthorised session is returned. * - * In an unauthorised session, the `.account` is `undefined` and the `client` is an + * In an unauthorised session, the `.account` is {@link RemoteServer} and the `client` is an * unauthorised client for the site. This client may not available for some operations. */ export function useSessionForAcctStr(acct: Accessor) { @@ -131,7 +131,7 @@ export function useSessionForAcctStr(acct: Accessor) { return ( authedSession ?? { client: createUnauthorizedClient(inputSite), - account: undefined, + account: { site: inputSite }, // TODO: we need some security checks here? } ); }); diff --git a/src/timelines/TootBottomSheet.tsx b/src/timelines/TootBottomSheet.tsx index eecc8fc..08301de 100644 --- a/src/timelines/TootBottomSheet.tsx +++ b/src/timelines/TootBottomSheet.tsx @@ -1,16 +1,13 @@ -import { useLocation, useParams } from "@solidjs/router"; +import { useParams } from "@solidjs/router"; import { catchError, - createEffect, - createRenderEffect, createResource, Show, type Component, } from "solid-js"; import Scaffold from "~material/Scaffold"; -import { AppBar, CircularProgress, IconButton, Toolbar } from "@suid/material"; +import { CircularProgress } from "@suid/material"; import { Title } from "~material/typography"; -import { Close as CloseIcon } from "@suid/icons-material"; import { useSessionForAcctStr } from "../masto/clients"; import { resolveCustomEmoji } from "../masto/toot"; import RegularToot, { @@ -33,18 +30,8 @@ import ItemSelectionProvider, { createSingluarItemSelection, } from "./toots/ItemSelectionProvider"; import AppTopBar from "~material/AppTopBar"; - -let cachedEntry: [string, mastodon.v1.Status] | undefined; - -export function setCache(acct: string, status: mastodon.v1.Status) { - cachedEntry = [acct, status]; -} - -function getCache(acct: string, id: string) { - if (acct === cachedEntry?.[0] && id === cachedEntry?.[1].id) { - return cachedEntry[1]; - } -} +import { fetchStatus } from "../masto/statuses"; +import { type Account } from "../accounts/stores"; const TootBottomSheet: Component = (props) => { const params = useParams<{ acct: string; id: string }>(); @@ -54,25 +41,15 @@ const TootBottomSheet: Component = (props) => { const session = useSessionForAcctStr(acctText); const [, selectionState] = createSingluarItemSelection(); - const [remoteToot, { mutate: setRemoteToot }] = createResource( - () => [session().client, params.id] as const, - async ([client, id]) => { - return await client.v1.statuses.$select(id).fetch(); - }, - ); + const [remoteToot, { mutate: setRemoteToot }] = + fetchStatus.cachedAndRevalidate( + () => [session().account, params.id] as const, + ); const toot = () => catchError(remoteToot, (error) => { console.error(error); - }) ?? getCache(acctText(), params.id); - - createEffect((lastTootId?: string) => { - const tootId = toot()?.id; - if (!tootId || lastTootId === tootId) return tootId; - const elementId = `toot-${tootId}`; - document.getElementById(elementId)?.scrollIntoView({ behavior: "smooth" }); - return tootId; - }); + }); const [tootContextErrorUncaught, { refetch: refetchContext }] = createResource( @@ -94,12 +71,6 @@ const TootBottomSheet: Component = (props) => { () => tootContext()?.descendants, ); - createEffect(() => { - if (ancestors.list.length > 0) { - document.querySelector(`#toot-${toot()!.id}`)?.scrollIntoView(); - } - }); - useDocumentTitle(() => { const t = toot()?.reblog ?? toot(); const name = t?.account.displayName ?? "Someone"; @@ -300,10 +271,10 @@ const TootBottomSheet: Component = (props) => { - + refetchContext()} diff --git a/src/timelines/TootComposer.tsx b/src/timelines/TootComposer.tsx index 450f9ad..a78c9e8 100644 --- a/src/timelines/TootComposer.tsx +++ b/src/timelines/TootComposer.tsx @@ -216,7 +216,7 @@ function cancelEvent(event: Event) { const TootComposer: Component<{ ref?: Ref; style?: JSX.CSSProperties; - profile?: Account; + profile?: mastodon.v1.Account; replyToDisplayName?: string; mentions?: readonly string[]; client?: mastodon.rest.Client; @@ -248,15 +248,15 @@ const TootComposer: Component<{ createEffect(() => { if (active()) { - setTimeout(() => inputRef.focus(), 0); + setTimeout(() => inputRef!.focus(), 0); } }); createEffect(() => { - if (inputRef.value !== "") return; + if (inputRef!.value !== "") return; if (props.mentions) { const prepText = props.mentions.join(" ") + " "; - inputRef.value = prepText; + inputRef!.value = prepText; } }); @@ -294,7 +294,7 @@ const TootComposer: Component<{ try { const status = await client.v1.statuses.create( { - status: inputRef.value, + status: inputRef!.value, language: language(), visibility: visibility(), inReplyToId: props.inReplyToId, @@ -309,7 +309,7 @@ const TootComposer: Component<{ ); props.onSent?.(status); - inputRef.value = ""; + inputRef!.value = ""; } finally { setSending(false); } @@ -363,7 +363,7 @@ const TootComposer: Component<{
diff --git a/src/timelines/TootList.tsx b/src/timelines/TootList.tsx index 35986a5..3c2f7ba 100644 --- a/src/timelines/TootList.tsx +++ b/src/timelines/TootList.tsx @@ -23,6 +23,7 @@ import type { ThreadNode } from "../masto/timelines"; import { useNavigator } from "~platform/StackedRouter"; import { ANIM_CURVE_STD } from "~material/theme"; import { useItemSelection } from "./toots/ItemSelectionProvider"; +import { fetchStatus } from "../masto/statuses"; function durationOf(rect0: DOMRect, rect1: DOMRect) { const distancelt = Math.sqrt( @@ -130,7 +131,7 @@ const TootList: Component<{ } const acct = `${inf.username}@${p.site}`; - setTootBottomSheetCache(acct, toot); + await fetchStatus.setJson([p, toot.id], toot) push(`/${encodeURIComponent(acct)}/toot/${toot.id}`, { animateOpen(element) { From 5742932c8609dee1de254a5f0bee5f957592408c Mon Sep 17 00:00:00 2001 From: thislight Date: Thu, 26 Dec 2024 22:06:15 +0800 Subject: [PATCH 18/57] fix #35: pass correct value to TootActionGroup * add createDefaultTootEnv --- src/accounts/stores.ts | 4 +- src/masto/clients.ts | 6 +- src/profiles/Profile.tsx | 14 +- src/timelines/RegularToot.tsx | 104 +++++++++++++- src/timelines/TootBottomSheet.tsx | 181 +++++++----------------- src/timelines/TootList.tsx | 97 +------------ src/timelines/toots/TootActionGroup.tsx | 8 +- 7 files changed, 179 insertions(+), 235 deletions(-) diff --git a/src/accounts/stores.ts b/src/accounts/stores.ts index 6a9fdca..006ea9e 100644 --- a/src/accounts/stores.ts +++ b/src/accounts/stores.ts @@ -26,8 +26,8 @@ export type Account = AccountKey & { inf?: mastodon.v1.AccountCredentials; }; -export function isAccount(object: AccountKey) { - return !!(object as Record)["tokenType"]; +export function isAccount(object: RemoteServer) { + return isAccountKey(object) && !!(object as Record)["tokenType"]; } export const $accounts = persistentAtom("accounts", [], { diff --git a/src/masto/clients.ts b/src/masto/clients.ts index 35789ef..7cd22e7 100644 --- a/src/masto/clients.ts +++ b/src/masto/clients.ts @@ -7,7 +7,7 @@ import { untrack, useContext, } from "solid-js"; -import { Account } from "../accounts/stores"; +import { Account, type RemoteServer } from "../accounts/stores"; import { createRestAPIClient, mastodon } from "masto"; import { useLocation } from "@solidjs/router"; import { useNavigator } from "~platform/StackedRouter"; @@ -131,8 +131,8 @@ export function useSessionForAcctStr(acct: Accessor) { return ( authedSession ?? { client: createUnauthorizedClient(inputSite), - account: { site: inputSite }, // TODO: we need some security checks here? - } + account: { site: inputSite } as RemoteServer, // TODO: we need some security checks here? + } as const ); }); } diff --git a/src/profiles/Profile.tsx b/src/profiles/Profile.tsx index 6e24cbf..b743acd 100644 --- a/src/profiles/Profile.tsx +++ b/src/profiles/Profile.tsx @@ -1,6 +1,5 @@ import { catchError, - createRenderEffect, createResource, createSignal, createUniqueId, @@ -14,7 +13,6 @@ import { } from "solid-js"; import Scaffold from "~material/Scaffold"; import { - AppBar, Avatar, Button, Checkbox, @@ -26,7 +24,6 @@ import { ListItemSecondaryAction, ListItemText, MenuItem, - Toolbar, } from "@suid/material"; import { Close, @@ -63,6 +60,7 @@ import { default as ItemSelectionProvider, } from "../timelines/toots/ItemSelectionProvider"; import AppTopBar from "~material/AppTopBar"; +import type { Account } from "../accounts/stores"; const Profile: Component = () => { const { pop } = useNavigator(); @@ -117,7 +115,7 @@ const Profile: Component = () => { }; const isCurrentSessionProfile = () => { - return session().account?.inf?.url === profile()?.url; + return (session().account as Account).inf?.url === profile()?.url; }; const [recentTootFilter, setRecentTootFilter] = createSignal({ @@ -172,8 +170,8 @@ const Profile: Component = () => { const sessionDisplayName = createMemo(() => resolveCustomEmoji( - session().account?.inf?.displayName || "", - session().account?.inf?.emojis ?? [], + (session().account as Account).inf?.displayName || "", + (session().account as Account).inf?.emojis ?? [], ), ); @@ -244,7 +242,7 @@ const Profile: Component = () => { - + @@ -367,7 +365,7 @@ const Profile: Component = () => { aria-label={`${relationship()?.following ? "Unfollow" : "Follow"} on your home timeline`} > - + void; @@ -52,6 +53,107 @@ export function useTootEnv() { return env; } +/** + * Create default toot env. + * + * This function does not provides the "reply" action. + */ +export function createDefaultTootEnv( + client: () => mastodon.rest.Client | undefined, + setToot: (id: string, status: mastodon.v1.Status) => void, +): TootEnv { + return { + async bookmark(status: mastodon.v1.Status) { + const c = client(); + if (!c) return; + + const result = await (status.bookmarked + ? c.v1.statuses.$select(status.id).unbookmark() + : c.v1.statuses.$select(status.id).bookmark()); + + setToot(result.id, result); + }, + + async boost(status: mastodon.v1.Status) { + const c = client(); + if (!c) return; + + vibrate(50); + const rootStatus = status.reblog ? status.reblog : status; + const reblogged = rootStatus.reblogged; + if (status.reblog) { + setToot(status.id, { + ...status, + reblog: { ...status.reblog!, reblogged: !reblogged }, + reblogged: !reblogged, + }); + } else { + setToot(status.id, { + ...status, + reblogged: !reblogged, + }); + } + // modified the original + + const result = reblogged + ? await c.v1.statuses.$select(status.id).unreblog() + : (await c.v1.statuses.$select(status.id).reblog()); + + if (status.reblog && !reblogged) { + // When calling /reblog, the result is the boost object (the actor + // is the calling account); for /unreblog, the result is the original + // toot. So we only do this trick only on the reblogging. + setToot(status.id, { + ...status, + reblog: result.reblog, + }); + } else { + setToot(status.id, result); + } + }, + + async favourite(status: mastodon.v1.Status) { + const c = client(); + if (!c) return; + + const ovalue = status.favourited; + setToot(status.id, { ...status, favourited: !ovalue }); + + const result = ovalue + ? await c.v1.statuses.$select(status.id).unfavourite() + : await c.v1.statuses.$select(status.id).favourite(); + setToot(status.id, result); + }, + + async vote(status: mastodon.v1.Status, votes: readonly number[]) { + const c = client(); + if (!c) return; + + const toot = status.reblog ?? status; + if (!toot.poll) return; + + const npoll = await c.v1.polls.$select(toot.poll.id).votes.create({ + choices: votes, + }); + + if (status.reblog) { + setToot(status.id, { + ...status, + reblog: { + ...status.reblog, + poll: npoll, + }, + }); + } else { + setToot(status.id, { + ...status, + poll: npoll, + }); + } + }, + }; +} + type RegularTootProps = { status: mastodon.v1.Status; actionable?: boolean; @@ -203,7 +305,7 @@ const RegularToot: Component = (oprops) => { class={cardStyle.cardNoPad} style={{ "margin-top": "8px" }} /> - + diff --git a/src/timelines/TootBottomSheet.tsx b/src/timelines/TootBottomSheet.tsx index 08301de..79fed0f 100644 --- a/src/timelines/TootBottomSheet.tsx +++ b/src/timelines/TootBottomSheet.tsx @@ -1,23 +1,17 @@ import { useParams } from "@solidjs/router"; -import { - catchError, - createResource, - Show, - type Component, -} from "solid-js"; +import { catchError, createResource, Show, type Component } from "solid-js"; import Scaffold from "~material/Scaffold"; import { CircularProgress } from "@suid/material"; import { Title } from "~material/typography"; import { useSessionForAcctStr } from "../masto/clients"; import { resolveCustomEmoji } from "../masto/toot"; import RegularToot, { + createDefaultTootEnv, findElementActionable, TootEnvProvider, } from "./RegularToot"; -import type { mastodon } from "masto"; import cards from "~material/cards.module.css"; import { css } from "solid-styled"; -import { vibrate } from "~platform/hardware"; import { createTimeSource, TimeSourceProvider } from "~platform/timesrc"; import TootComposer from "./TootComposer"; import { useDocumentTitle } from "../utils"; @@ -53,7 +47,7 @@ const TootBottomSheet: Component = (props) => { const [tootContextErrorUncaught, { refetch: refetchContext }] = createResource( - () => [session().client, params.id] as const, + () => [session().client, toot()?.reblog?.id ?? params.id] as const, async ([client, id]) => { return await client.v1.statuses.$select(id).context.fetch(); }, @@ -89,49 +83,10 @@ const TootBottomSheet: Component = (props) => { return s.account ? s : undefined; }; - const onBookmark = async () => { - const status = remoteToot()!; - const client = actSession()!.client; - setRemoteToot( - Object.assign({}, status, { - bookmarked: !status.bookmarked, - }), - ); - const result = await (status.bookmarked - ? client.v1.statuses.$select(status.id).unbookmark() - : client.v1.statuses.$select(status.id).bookmark()); - setRemoteToot(result); - }; - - const onBoost = async () => { - const status = remoteToot()!; - const client = actSession()!.client; - vibrate(50); - setRemoteToot( - Object.assign({}, status, { - reblogged: !status.reblogged, - }), - ); - const result = await (status.reblogged - ? client.v1.statuses.$select(status.id).unreblog() - : client.v1.statuses.$select(status.id).reblog()); - vibrate([20, 30]); - setRemoteToot(result.reblog!); - }; - - const onFav = async () => { - const status = remoteToot()!; - const client = actSession()!.client; - setRemoteToot( - Object.assign({}, status, { - favourited: !status.favourited, - }), - ); - const result = await (status.favourited - ? client.v1.statuses.$select(status.id).favourite() - : client.v1.statuses.$select(status.id).unfavourite()); - setRemoteToot(result); - }; + const mainTootEnv = createDefaultTootEnv( + () => actSession()?.client, + (_, status) => setRemoteToot(status), + ); const defaultMentions = () => { const tootAcct = remoteToot()?.reblog?.account ?? remoteToot()?.account; @@ -145,33 +100,6 @@ const TootBottomSheet: Component = (props) => { return Array.from(new Set(values).keys()); }; - const vote = async (status: mastodon.v1.Status, votes: readonly number[]) => { - const client = session()?.client; - if (!client) return; - - const toot = status.reblog ?? status; - if (!toot.poll) return; - - const npoll = await client.v1.polls.$select(toot.poll.id).votes.create({ - choices: votes, - }); - - if (status.reblog) { - setRemoteToot({ - ...status, - reblog: { - ...status.reblog, - poll: npoll, - }, - }); - } else { - setRemoteToot({ - ...status, - poll: npoll, - }); - } - }; - const handleMainTootClick = ( event: MouseEvent & { currentTarget: HTMLElement }, ) => { @@ -237,58 +165,51 @@ const TootBottomSheet: Component = (props) => { >
- - -
- - - - - -
- - - refetchContext()} - inReplyToId={remoteToot()?.reblog?.id ?? remoteToot()?.id} - /> - - - -
- -
-
- + + +
+ + + + + +
+ + + refetchContext()} + inReplyToId={remoteToot()?.reblog?.id ?? remoteToot()?.id} + /> + + + +
+ +
+
+ { - const client = session()?.client; - if (!client) return; + const tootEnv = createDefaultTootEnv( + () => session()?.client, + (...args) => props.onChangeToot(...args), + ); - const result = await (status.bookmarked - ? client.v1.statuses.$select(status.id).unbookmark() - : client.v1.statuses.$select(status.id).bookmark()); - props.onChangeToot(result.id, result); - }; - - const toggleBoost = async (status: mastodon.v1.Status) => { - const client = session()?.client; - if (!client) return; - - vibrate(50); - const rootStatus = status.reblog ? status.reblog : status; - const reblogged = rootStatus.reblogged; - if (status.reblog) { - props.onChangeToot(status.id, { - ...status, - reblog: { ...status.reblog, reblogged: !reblogged }, - }); - } else { - props.onChangeToot(status.id, { - ...status, - reblogged: !reblogged, - }); - } - - const result = reblogged - ? await client.v1.statuses.$select(status.id).unreblog() - : (await client.v1.statuses.$select(status.id).reblog()).reblog!; - - if (status.reblog) { - props.onChangeToot(status.id, { - ...status, - reblog: result, - }); - } else { - props.onChangeToot(status.id, result); - } - }; - - const toggleFavourite = async (status: mastodon.v1.Status) => { - const client = session()?.client; - if (!client) return; - const ovalue = status.favourited; - props.onChangeToot(status.id, { ...status, favourited: !ovalue }); - - const result = ovalue - ? await client.v1.statuses.$select(status.id).unfavourite() - : await client.v1.statuses.$select(status.id).favourite(); - props.onChangeToot(status.id, result); - }; - - const openFullScreenToot = ( + const openFullScreenToot = async ( toot: mastodon.v1.Status, srcElement: HTMLElement, reply?: boolean, @@ -235,33 +182,6 @@ const TootList: Component<{ openFullScreenToot(status, element, true); }; - const vote = async (status: mastodon.v1.Status, votes: readonly number[]) => { - const client = session()?.client; - if (!client) return; - - const toot = status.reblog ?? status; - if (!toot.poll) return; - - const npoll = await client.v1.polls.$select(toot.poll.id).votes.create({ - choices: votes, - }); - - if (status.reblog) { - props.onChangeToot(status.id, { - ...status, - reblog: { - ...status.reblog, - poll: npoll, - }, - }); - } else { - props.onChangeToot(status.id, { - ...status, - poll: npoll, - }); - } - }; - return ( { @@ -271,11 +191,8 @@ const TootList: Component<{ >
diff --git a/src/timelines/toots/TootActionGroup.tsx b/src/timelines/toots/TootActionGroup.tsx index fef75ef..280de36 100644 --- a/src/timelines/toots/TootActionGroup.tsx +++ b/src/timelines/toots/TootActionGroup.tsx @@ -24,13 +24,19 @@ function isolatedCallback(e: MouseEvent) { e.stopPropagation(); } +/** + * The actions of the toot card. + * + * The `value` must be the original toot (contains `reblog` if + * it's a boost), since the value will be passed to the callbacks. + */ function TootActionGroup(props: { value: T; class?: string; }) { const { reply, boost, favourite, bookmark } = useTootEnv(); let actGrpElement: HTMLDivElement; - const toot = () => props.value; + const toot = () => props.value.reblog ?? props.value; return (
Date: Fri, 27 Dec 2024 21:40:39 +0800 Subject: [PATCH 19/57] Settings: correct safe area emu hot reload --- src/settings/Settings.tsx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/settings/Settings.tsx b/src/settings/Settings.tsx index f783e7a..645c98f 100644 --- a/src/settings/Settings.tsx +++ b/src/settings/Settings.tsx @@ -141,11 +141,16 @@ function setupSafeAreaEmulation(name: string) { } } +const $$SAFE_AREA_EMU = "$$SAFE_AREA_EMU"; + if (import.meta.hot) { - import.meta.hot.accept((mod) => { - if (!mod) return; + import.meta.hot.on("vite:beforeUpdate", () => { + import.meta.hot!.data[$$SAFE_AREA_EMU] = screenOrientationCallback; + }); + + import.meta.hot.on("vite:afterUpdate", () => { + screenOrientationCallback = import.meta.hot?.data?.[$$SAFE_AREA_EMU]; if (screenOrientationCallback) { - mod["screenOrientationCallback"] = screenOrientationCallback; setTimeout(screenOrientationCallback, 0); } }); From 81b5fe145048e3ee3cce23aa86a22b1517473b12 Mon Sep 17 00:00:00 2001 From: thislight Date: Fri, 27 Dec 2024 21:56:32 +0800 Subject: [PATCH 20/57] Settings: add clear cache option --- src/masto/base.ts | 4 +++- src/settings/Settings.tsx | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/masto/base.ts b/src/masto/base.ts index 823fad7..a0bc4ee 100644 --- a/src/masto/base.ts +++ b/src/masto/base.ts @@ -1,6 +1,8 @@ import { createCacheBucket } from "~platform/cache"; -export const cacheBucket = /* @__PURE__ */ createCacheBucket("mastodon"); +export const CACHE_BUCKET_NAME = "mastodon" + +export const cacheBucket = /* @__PURE__ */ createCacheBucket(CACHE_BUCKET_NAME); export function toSmallCamelCase(object: T) :T { if (!object || typeof object !== "object") { diff --git a/src/settings/Settings.tsx b/src/settings/Settings.tsx index 645c98f..0153c7c 100644 --- a/src/settings/Settings.tsx +++ b/src/settings/Settings.tsx @@ -18,6 +18,7 @@ import { import { Animation as AnimationIcon, Close as CloseIcon, + DeleteForever, Logout, Public as PublicIcon, Refresh as RefreshIcon, @@ -275,6 +276,17 @@ const Settings: Component = () => { +
  • + Storage + + + + + + Clear cache... + + +
  • {t("This Application")} From 4df609f1f55f7889dbc304c82bb73dbee2d4ed3a Mon Sep 17 00:00:00 2001 From: thislight Date: Fri, 27 Dec 2024 22:24:19 +0800 Subject: [PATCH 21/57] Settings: use AppTopBar --- src/settings/Language.tsx | 18 +++++++----------- src/settings/Motions.tsx | 12 ++++-------- src/settings/Region.tsx | 20 ++++++++------------ src/settings/Settings.tsx | 18 +++++++----------- 4 files changed, 26 insertions(+), 42 deletions(-) diff --git a/src/settings/Language.tsx b/src/settings/Language.tsx index b76495f..4a72cb1 100644 --- a/src/settings/Language.tsx +++ b/src/settings/Language.tsx @@ -25,6 +25,7 @@ import type { Template } from "@solid-primitives/i18n"; import { useStore } from "@nanostores/solid"; import { $settings } from "./stores"; import { useNavigator } from "~platform/StackedRouter"; +import AppTopBar from "~material/AppTopBar"; const ChooseLang: Component = () => { const { pop } = useNavigator(); @@ -54,17 +55,12 @@ const ChooseLang: Component = () => { return ( - - - - - {t("Choose Language")} - - + + + + + {t("Choose Language")} + } > { const {pop} = useNavigator(); @@ -31,17 +32,12 @@ const Motions: Component = () => { return ( - - + + {t("motions")} - - + } > { - const {pop} = useNavigator(); + const { pop } = useNavigator(); const [t] = createTranslator( () => import("./i18n/generic.json"), (code) => @@ -49,17 +50,12 @@ const ChooseRegion: Component = () => { return ( - - - - - {t("Choose Region")} - - + + + + + {t("Choose Region")} + } > { return ( - - - - - {t("Settings")} - - + + + + + {t("Settings")} + } > From 8d04874bce75f79f831db7d36eef03a5976d31dc Mon Sep 17 00:00:00 2001 From: thislight Date: Fri, 27 Dec 2024 22:24:46 +0800 Subject: [PATCH 22/57] AppTopBar: minor change to the text justify --- src/material/AppTopBar.css | 16 +++++++++++++++- src/material/AppTopBar.tsx | 1 - 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/material/AppTopBar.css b/src/material/AppTopBar.css index de3426d..cf692eb 100644 --- a/src/material/AppTopBar.css +++ b/src/material/AppTopBar.css @@ -1,6 +1,20 @@ .AppTopBar { - & > .toolbar { + & > .MuiToolbar-root { padding-top: var(--safe-area-inset-top, 0px); gap: 8px; + + & > button:first-child, & > .MuiButtonBase-root:first-child { + margin-left: -0.15em; + } + + & > button:last-child, & > .MuiButtonBase-root:last-child { + margin-right: -0.15em; + } + + & > .title { + margin-top: -0.2ch; + } } } + + diff --git a/src/material/AppTopBar.tsx b/src/material/AppTopBar.tsx index a9ad382..a75c7c3 100644 --- a/src/material/AppTopBar.tsx +++ b/src/material/AppTopBar.tsx @@ -20,7 +20,6 @@ const AppTopBar: ParentComponent<{ > windowSize.height ? "dense" : "regular"} - class="toolbar" sx={{ paddingTop: "var(--safe-area-inset-top, 0px)" }} > {props.children} From 59c7a5c588a2aff218502d4ebf91ae5b7a90f426 Mon Sep 17 00:00:00 2001 From: thislight Date: Fri, 27 Dec 2024 22:36:35 +0800 Subject: [PATCH 23/57] Home: use AppTopBar --- src/timelines/Home.tsx | 63 +++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 34 deletions(-) diff --git a/src/timelines/Home.tsx b/src/timelines/Home.tsx index 99e4fd1..5b413ce 100644 --- a/src/timelines/Home.tsx +++ b/src/timelines/Home.tsx @@ -31,6 +31,7 @@ import { createSingluarItemSelection, default as ItemSelectionProvider, } from "./toots/ItemSelectionProvider"; +import AppTopBar from "~material/AppTopBar"; const Home: ParentComponent = (props) => { let panelList: HTMLDivElement; @@ -165,40 +166,34 @@ const Home: ParentComponent = (props) => { <> - - - - Home - - - Trending - - - Public - - - - - $settings.setKey( - "prefetchTootsDisabled", - !$settings.get().prefetchTootsDisabled, - ) - } - > - Prefetch Toots - - - - - - - + + + + Home + + + Trending + + + Public + + + + + $settings.setKey( + "prefetchTootsDisabled", + !$settings.get().prefetchTootsDisabled, + ) + } + > + Prefetch Toots + + + + + + } > From d7e13584950501440517b33e8dd254110f08016a Mon Sep 17 00:00:00 2001 From: thislight Date: Fri, 27 Dec 2024 22:42:20 +0800 Subject: [PATCH 24/57] AppTopBar: add dark status bar --- src/material/AppTopBar.css | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/material/AppTopBar.css b/src/material/AppTopBar.css index cf692eb..a79321c 100644 --- a/src/material/AppTopBar.css +++ b/src/material/AppTopBar.css @@ -1,20 +1,31 @@ .AppTopBar { - & > .MuiToolbar-root { + &::before { + contain: strict; + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + height: var(--safe-area-inset-top, 0); + background-color: rgba(0, 0, 0, 0.2); + } + + &>.MuiToolbar-root { padding-top: var(--safe-area-inset-top, 0px); gap: 8px; - & > button:first-child, & > .MuiButtonBase-root:first-child { + &>button:first-child, + &>.MuiButtonBase-root:first-child { margin-left: -0.15em; } - & > button:last-child, & > .MuiButtonBase-root:last-child { + &>button:last-child, + &>.MuiButtonBase-root:last-child { margin-right: -0.15em; } - & > .title { + &>.title { margin-top: -0.2ch; } } -} - - +} \ No newline at end of file From 66b593add8b61edeedf5d19b9cd2126db6081b9b Mon Sep 17 00:00:00 2001 From: thislight Date: Wed, 1 Jan 2025 21:08:26 +0800 Subject: [PATCH 25/57] fetchStatus: check the fetch error --- src/masto/base.ts | 67 ++++++++++++++++++++++++++++++++++++++++--- src/masto/statuses.ts | 24 +++++++++------- 2 files changed, 76 insertions(+), 15 deletions(-) diff --git a/src/masto/base.ts b/src/masto/base.ts index a0bc4ee..79d9755 100644 --- a/src/masto/base.ts +++ b/src/masto/base.ts @@ -1,19 +1,20 @@ import { createCacheBucket } from "~platform/cache"; +import { MastoHttpError, MastoTimeoutError, MastoUnexpectedError } from "masto"; -export const CACHE_BUCKET_NAME = "mastodon" +export const CACHE_BUCKET_NAME = "mastodon"; export const cacheBucket = /* @__PURE__ */ createCacheBucket(CACHE_BUCKET_NAME); -export function toSmallCamelCase(object: T) :T { +export function toSmallCamelCase(object: T): T { if (!object || typeof object !== "object") { return object; } else if (Array.isArray(object)) { - return object.map(toSmallCamelCase) as T + return object.map(toSmallCamelCase) as T; } const result = {} as Record; for (const k in object) { - const value = toSmallCamelCase(object[k]) + const value = toSmallCamelCase(object[k]); const nk = typeof k === "string" ? k.replace(/_(.)/g, (_, match) => match.toUpperCase()) @@ -23,3 +24,61 @@ export function toSmallCamelCase(object: T) :T { return result as T; } + +function contentTypeOf(headers: Headers) { + const raw = headers.get("Content-Type")?.replace(/\s*;.*$/, ""); + if (!raw) { + return; + } + + return raw; +} + +/** + * Wrpas the error reason into masto's errors: + * {@link MastoHttpError} if the reason is a {@link Response}, + * {@link MastoTimeoutError} if the reason is a timeout error. + * + * @throws If the reason is unexpected, {@link MastoUnexpectedError} will be thrown. + */ +export async function wrapsError(reason: Response): Promise; +export async function wrapsError(reason: { + name: "TimeoutError"; +}): Promise; +export async function wrapsError(reason: T): Promise; + +export async function wrapsError(reason: unknown) { + if (reason instanceof Response) { + const contentType = contentTypeOf(reason.headers); + if (!contentType) { + throw new MastoUnexpectedError( + "The server returned data with an unknown encoding. The server may be down", + ); + } + + const data = await reason.json(); + const { + error: message, + errorDescription, + details, + ...additionalProperties + } = data; + + return new MastoHttpError( + { + statusCode: reason.status, + message, + description: errorDescription, + details, + additionalProperties, + }, + { cause: reason }, + ); + } + + if (reason && (reason as { name?: string }).name === "TimeoutError") { + return new MastoTimeoutError("Request timed out", { cause: reason }); + } + + return reason; +} diff --git a/src/masto/statuses.ts b/src/masto/statuses.ts index 91fdc7a..4da437e 100644 --- a/src/masto/statuses.ts +++ b/src/masto/statuses.ts @@ -1,12 +1,7 @@ import { CachedFetch } from "~platform/cache"; -import { cacheBucket, toSmallCamelCase } from "./base"; -import { - isAccountKey, - type RemoteServer, -} from "../accounts/stores"; -import type { mastodon } from "masto"; - - +import { cacheBucket, toSmallCamelCase, wrapsError } from "./base"; +import { isAccountKey, type RemoteServer } from "../accounts/stores"; +import { type mastodon } from "masto"; export const fetchStatus = /* @__PURE__ */ new CachedFetch( cacheBucket, @@ -23,8 +18,15 @@ export const fetchStatus = /* @__PURE__ */ new CachedFetch( }; }, async (response) => { - return toSmallCamelCase( - await response.json(), - ) as unknown as mastodon.v1.Status; + try { + if (!response.ok) { + throw response; + } + return toSmallCamelCase( + await response.json(), + ) as unknown as mastodon.v1.Status; + } catch (reason) { + throw wrapsError(reason); + } }, ); From 0eef74f25fbd6ecef8ce31da73d98509fd256e96 Mon Sep 17 00:00:00 2001 From: thislight Date: Thu, 2 Jan 2025 17:12:48 +0800 Subject: [PATCH 26/57] Tabs: fix misplaced indicator --- src/material/Tab.css | 23 +++++++++++++++++++++++ src/material/Tab.tsx | 39 +++------------------------------------ src/material/Tabs.css | 21 +++++++++++++++++++++ src/material/Tabs.tsx | 42 +++++++++++------------------------------- 4 files changed, 58 insertions(+), 67 deletions(-) create mode 100644 src/material/Tab.css create mode 100644 src/material/Tabs.css diff --git a/src/material/Tab.css b/src/material/Tab.css new file mode 100644 index 0000000..83bff90 --- /dev/null +++ b/src/material/Tab.css @@ -0,0 +1,23 @@ +.Tab { + cursor: pointer; + background: none; + border: none; + height: 100%; + max-width: min(calc(100% - 56px), 264px); + padding: 10px 24px; + font-size: 0.8135rem; + font-weight: 600; + text-transform: uppercase; + transition: color 120ms var(--tutu-anim-curve-std); +} + +.MuiToolbar-root .Tab { + color: rgba(255, 255, 255, 0.7); + + &:hover, + &:focus, + &.focus, + &.Tabs-focus { + color: white; + } +} \ No newline at end of file diff --git a/src/material/Tab.tsx b/src/material/Tab.tsx index 2145b89..10d781a 100644 --- a/src/material/Tab.tsx +++ b/src/material/Tab.tsx @@ -1,26 +1,18 @@ import { - Component, createEffect, splitProps, type JSX, type ParentComponent, } from "solid-js"; -import { css } from "solid-styled"; import { useTabListContext } from "./Tabs"; +import "./Tab.css"; const Tab: ParentComponent< { focus?: boolean; - large?: boolean; } & JSX.ButtonHTMLAttributes > = (props) => { - const [managed, rest] = splitProps(props, [ - "focus", - "large", - "type", - "role", - "ref", - ]); + const [managed, rest] = splitProps(props, ["focus", "type", "role", "ref"]); let self: HTMLButtonElement; const { focusOn: [, setFocusOn], @@ -35,32 +27,7 @@ const Tab: ParentComponent< } return managed.focus; }); - css` - .tab { - cursor: pointer; - background: none; - border: none; - min-width: ${managed.large ? "160px" : "72px"}; - height: 48px; - max-width: min(calc(100% - 56px), 264px); - padding: 10px 24px; - font-size: 0.8135rem; - font-weight: 600; - text-transform: uppercase; - transition: color 120ms var(--tutu-anim-curve-std); - } - :global(.MuiToolbar-root) .tab { - color: rgba(255, 255, 255, 0.7); - - &:hover, - &:focus, - &.focus, - &:global(.tablist-focus) { - color: white; - } - } - `; return (
  • - Storage + {t("storage")} - - Clear cache... + + {t("storage.cache.clear")}
  • @@ -324,7 +324,7 @@ const Settings: Component = () => { secondaryAction={ 0 ? makeAcctText(profiles()[0]) : "@")}/profile/@tutu@indieweb.social`} > diff --git a/src/settings/i18n/en.json b/src/settings/i18n/en.json index 24ce5e5..3ff8845 100644 --- a/src/settings/i18n/en.json +++ b/src/settings/i18n/en.json @@ -33,5 +33,11 @@ "motions.gifs": "GIFs", "motions.gifs.autoplay": "Auto-play GIFs", "motions.vids": "Videos", - "motions.vids.autoplay": "Auto-play Videos" + "motions.vids.autoplay": "Auto-play Videos", + + "storage": "Storage", + "storage.cache.clear": "Clear Cache", + "storage.cache.UA-managed": "Cache is managed by your browser.", + + "mastodonlink.open": "Open Tutu's Mastodon" } \ No newline at end of file diff --git a/src/settings/i18n/zh-Hans.json b/src/settings/i18n/zh-Hans.json index d898801..79145d7 100644 --- a/src/settings/i18n/zh-Hans.json +++ b/src/settings/i18n/zh-Hans.json @@ -33,5 +33,11 @@ "motions.gifs": "动图", "motions.gifs.autoplay": "自动播放动图", "motions.vids": "视频", - "motions.vids.autoplay": "自动播放视频" + "motions.vids.autoplay": "自动播放视频", + + "storage": "存储空间", + "storage.cache.clear": "清除缓存", + "storage.cache.UA-managed": "缓存由你的浏览器管理。", + + "mastodonlink.open": "打开图图的Mastodon账户" } \ No newline at end of file From 2e13fcacb520adc9fb50251b3fa14fe576c5bdf0 Mon Sep 17 00:00:00 2001 From: thislight Date: Thu, 2 Jan 2025 21:05:05 +0800 Subject: [PATCH 31/57] Home: add translation --- src/timelines/Home.tsx | 39 ++++++++++++++++++++--------- src/timelines/ProfileMenuButton.tsx | 18 ++++++++++--- src/timelines/i18n/en.json | 14 ++++++++++- src/timelines/i18n/zh-Hans.json | 13 +++++++++- 4 files changed, 66 insertions(+), 18 deletions(-) diff --git a/src/timelines/Home.tsx b/src/timelines/Home.tsx index 5b413ce..3153f52 100644 --- a/src/timelines/Home.tsx +++ b/src/timelines/Home.tsx @@ -1,27 +1,23 @@ import { createSignal, Show, - onMount, type ParentComponent, - createRenderEffect, createEffect, + useTransition, } from "solid-js"; import { useDocumentTitle } from "../utils"; import Scaffold from "~material/Scaffold"; import { - AppBar, ListItemSecondaryAction, ListItemText, MenuItem, Switch, - Toolbar, } from "@suid/material"; import { css } from "solid-styled"; import { TimeSourceProvider, createTimeSource } from "~platform/timesrc"; import ProfileMenuButton from "./ProfileMenuButton"; import Tabs from "~material/Tabs"; import Tab from "~material/Tab"; -import { makeEventListener } from "@solid-primitives/event-listener"; import { $settings } from "../settings/stores"; import { useStore } from "@nanostores/solid"; import TrendTimelinePanel from "./TrendTimelinePanel"; @@ -32,10 +28,20 @@ import { default as ItemSelectionProvider, } from "./toots/ItemSelectionProvider"; import AppTopBar from "~material/AppTopBar"; +import { createTranslator } from "~platform/i18n"; +import { useWindowSize } from "@solid-primitives/resize-observer"; + +type StringRes = Record< + "tabs.home" | "tabs.trending" | "tabs.public" | "set.prefetch-toots", + string +>; const Home: ParentComponent = (props) => { let panelList: HTMLDivElement; useDocumentTitle("Timelines"); + const [t] = createTranslator( + (code) => import(`./i18n/${code}.json`) as Promise<{ default: StringRes }>, + ); const now = createTimeSource(); const [, selectionState] = createSingluarItemSelection( undefined as string | undefined, @@ -98,10 +104,19 @@ const Home: ParentComponent = (props) => { } }; - createEffect(() => { - makeEventListener(window, "resize", requestRecalculateTabIndicator); + const windowSize = useWindowSize(); + createEffect((last) => { + if (last !== windowSize.width) { + requestRecalculateTabIndicator(); + } + }); - requestAnimationFrame(recalculateTabIndicator); + const [inTransition] = useTransition(); + + createEffect(() => { + if (!inTransition()) { + requestAnimationFrame(recalculateTabIndicator); + } }); const isTabFocus = (idx: number) => { @@ -169,13 +184,13 @@ const Home: ParentComponent = (props) => { - Home + {t("tabs.home")} - Trending + {t("tabs.trending")} - Public + {t("tabs.public")} @@ -187,7 +202,7 @@ const Home: ParentComponent = (props) => { ) } > - Prefetch Toots + {t("set.prefetch-toots")} diff --git a/src/timelines/ProfileMenuButton.tsx b/src/timelines/ProfileMenuButton.tsx index 042b105..da91edf 100644 --- a/src/timelines/ProfileMenuButton.tsx +++ b/src/timelines/ProfileMenuButton.tsx @@ -16,6 +16,12 @@ import { } from "@suid/icons-material"; import A from "~platform/A"; import Menu, { createManagedMenuState } from "~material/Menu"; +import { createTranslator } from "~platform/i18n"; + +type StringRes = Record< + "nav.bookmarks" | "nav.likes" | "nav.lists" | "nav.settings", + string +>; const ProfileMenuButton: ParentComponent<{ profile?: { @@ -32,6 +38,10 @@ const ProfileMenuButton: ParentComponent<{ }> = (props) => { const menuId = createUniqueId(); const buttonId = createUniqueId(); + const [t] = createTranslator( + async (code) => + (await import(`./i18n/${code}.json`)) as { default: StringRes }, + ); const [open, state] = createManagedMenuState(); @@ -84,19 +94,19 @@ const ProfileMenuButton: ParentComponent<{ - Bookmarks + {t("nav.bookmarks")} - Likes + {t("nav.likes")} - Lists + {t("nav.lists")} @@ -107,7 +117,7 @@ const ProfileMenuButton: ParentComponent<{ - Settings + {t("nav.settings")} diff --git a/src/timelines/i18n/en.json b/src/timelines/i18n/en.json index f9bed6a..a359dac 100644 --- a/src/timelines/i18n/en.json +++ b/src/timelines/i18n/en.json @@ -1,3 +1,15 @@ { - "Choose Language": "Choose Language" + "Choose Language": "Choose Language", + + "tabs.home": "Home", + "tabs.trending": "Trending", + "tabs.public": "Public", + + "set.prefetch-toots": "Prefetch Toots", + + "nav.bookmarks": "Bookmarks", + "nav.likes": "Likes", + "nav.lists": "Lists", + "nav.settings": "Settings" + } \ No newline at end of file diff --git a/src/timelines/i18n/zh-Hans.json b/src/timelines/i18n/zh-Hans.json index 06d6bfb..e6ad5ff 100644 --- a/src/timelines/i18n/zh-Hans.json +++ b/src/timelines/i18n/zh-Hans.json @@ -1,3 +1,14 @@ { - "Choose Language": "选择语言" + "Choose Language": "选择语言", + + "tabs.home": "主页", + "tabs.trending": "当下热门", + "tabs.public": "公开", + + "set.prefetch-toots": "提前下载嘟文", + + "nav.bookmarks": "所有书签", + "nav.likes": "喜欢的嘟文", + "nav.lists": "所有列表", + "nav.settings": "设置" } \ No newline at end of file From 1115135380d8b45cedf13f4dce952f53dda42ae6 Mon Sep 17 00:00:00 2001 From: thislight Date: Thu, 2 Jan 2025 21:05:20 +0800 Subject: [PATCH 32/57] StackedRouter: add startTransition --- src/platform/StackedRouter.tsx | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/platform/StackedRouter.tsx b/src/platform/StackedRouter.tsx index df3d522..fbfc713 100644 --- a/src/platform/StackedRouter.tsx +++ b/src/platform/StackedRouter.tsx @@ -15,6 +15,8 @@ import { useContext, onCleanup, type Accessor, + useTransition, + getOwner, } from "solid-js"; import { createStore, unwrap } from "solid-js/store"; import "./StackedRouter.css"; @@ -79,8 +81,8 @@ export type NewFrameOptions = (T extends undefined export type FramePusher = T[K] extends | undefined | any - ? (path: K, state?: Readonly>) => Readonly - : (path: K, state: Readonly>) => Readonly; + ? (path: K, state?: Readonly>) => Promise> + : (path: K, state: Readonly>) => Promise>; export type Navigator> = { frames: readonly StackFrame[]; @@ -465,6 +467,8 @@ const StackedRouter: Component = (oprops) => { const [stack, mutStack] = createStore([] as StackFrame[], { name: "stack" }); const windowSize = useWindowSize(); + const [, startTransition] = useTransition(); + if (import.meta.hot) { const saveStack = () => { import.meta.hot!.data[$StackedRouterSavedStack] = unwrap(stack); @@ -488,8 +492,8 @@ const StackedRouter: Component = (oprops) => { }); } - const pushFrame = (path: string, opts?: Readonly>) => - untrack(() => { + const pushFrame = async (path: string, opts?: Readonly>) => + await untrack(async () => { const frame = { path, state: opts?.state, @@ -499,14 +503,17 @@ const StackedRouter: Component = (oprops) => { }; const replace = opts?.replace; - if (replace === "all" || stack.length === 0) { - mutStack([frame]); - } else if (replace) { - const idx = stack.length - 1; - mutStack(idx, frame); - } else { - mutStack(stack.length, frame); - } + const length = stack.length; + await startTransition(() => { + if (replace === "all" || length === 0) { + mutStack([frame]); + } else if (replace) { + const idx = length - 1; + mutStack(idx, frame); + } else { + mutStack(length, frame); + } + }); const savedStack = serializableStack(stack); @@ -515,6 +522,7 @@ const StackedRouter: Component = (oprops) => { } else { window.history.pushState(savedStack, "", path); } + return frame; }); From 1c8a3f0bbbf27ee1f2b44394b281d0a0e4cc1258 Mon Sep 17 00:00:00 2001 From: thislight Date: Thu, 2 Jan 2025 22:43:37 +0800 Subject: [PATCH 33/57] remove utils * add ~platform/DocumentTitle * add titles for some pages --- src/accounts/MastodonOAuth2Callback.tsx | 73 +-- src/accounts/SignIn.tsx | 105 ++-- src/material/Img.tsx | 22 +- src/platform/DocumentTitle.tsx | 22 + src/profiles/Profile.tsx | 670 ++++++++++++------------ src/settings/Language.tsx | 116 ++-- src/settings/Motions.tsx | 96 ++-- src/settings/Region.tsx | 100 ++-- src/settings/Settings.tsx | 420 +++++++-------- src/timelines/Home.tsx | 4 +- src/timelines/TootBottomSheet.tsx | 7 +- src/utils.tsx | 31 -- 12 files changed, 843 insertions(+), 823 deletions(-) create mode 100644 src/platform/DocumentTitle.tsx delete mode 100644 src/utils.tsx diff --git a/src/accounts/MastodonOAuth2Callback.tsx b/src/accounts/MastodonOAuth2Callback.tsx index 398d79d..ae7255c 100644 --- a/src/accounts/MastodonOAuth2Callback.tsx +++ b/src/accounts/MastodonOAuth2Callback.tsx @@ -8,13 +8,13 @@ import { } from "solid-js"; import { acceptAccountViaAuthCode } from "./stores"; import { $settings } from "../settings/stores"; -import { useDocumentTitle } from "../utils"; import cards from "~material/cards.module.css"; import { LinearProgress } from "@suid/material"; import Img from "~material/Img"; import { createRestAPIClient } from "masto"; import { Title } from "~material/typography"; import { useNavigator } from "~platform/StackedRouter"; +import DocumentTitle from "~platform/DocumentTitle"; type OAuth2CallbackParams = { code?: string; @@ -27,13 +27,12 @@ const MastodonOAuth2Callback: Component = () => { const titleId = createUniqueId(); const [params] = useSearchParams(); const { push: navigate } = useNavigator(); - const setDocumentTitle = useDocumentTitle("Back from Mastodon..."); const [siteImg, setSiteImg] = createSignal<{ src: string; srcset?: string; blurhash: string; }>(); - const [siteTitle, setSiteTitle] = createSignal("the Mastodon server"); + const [siteTitle, setSiteTitle] = createSignal("Mastodon"); onMount(async () => { const onGoingOAuth2Process = $settings.get().onGoingOAuth2Process; @@ -42,7 +41,6 @@ const MastodonOAuth2Callback: Component = () => { url: onGoingOAuth2Process, }); const ins = await client.v2.instance.fetch(); - setDocumentTitle(`Back from ${ins.title}...`); setSiteTitle(ins.title); const srcset = []; @@ -93,42 +91,45 @@ const MastodonOAuth2Callback: Component = () => { }); }); return ( -
    -
    - - - } - > - + Back from {siteTitle()} +
    +
    + - + + } + > + {`Banner + - - Contracting {siteTitle}... - -

    - If this page stays too long, you can close this page and sign in - again. -

    + + Contracting {siteTitle}... + +

    + If this page stays too long, you can close this page and sign in + again. +

    +
    -
    + ); }; diff --git a/src/accounts/SignIn.tsx b/src/accounts/SignIn.tsx index 628e490..1e37517 100644 --- a/src/accounts/SignIn.tsx +++ b/src/accounts/SignIn.tsx @@ -2,7 +2,6 @@ import { Component, Show, createEffect, - createSelector, createSignal, createUniqueId, onMount, @@ -10,15 +9,14 @@ import { import cards from "~material/cards.module.css"; import TextField from "~material/TextField.js"; import Button from "~material/Button.js"; -import { useDocumentTitle } from "../utils"; import { Title } from "~material/typography"; -import { css } from "solid-styled"; import { LinearProgress } from "@suid/material"; import { createRestAPIClient } from "masto"; import { getOrRegisterApp } from "./stores"; import { useSearchParams } from "@solidjs/router"; import { $settings } from "../settings/stores"; import "./SignIn.css"; +import DocumentTitle from "~platform/DocumentTitle"; type ErrorParams = { error: string; @@ -36,8 +34,6 @@ const SignIn: Component = () => { const [serverUrlError, setServerUrlError] = createSignal(false); const [targetSiteTitle, setTargetSiteTitle] = createSignal(""); - useDocumentTitle("Sign In"); - const serverUrl = () => { const url = rawServerUrl(); if (url.length === 0 || /^%w:/.test(url)) { @@ -115,55 +111,58 @@ const SignIn: Component = () => { }; return ( -
    - -
    -

    Authorization is failed.

    -

    {params.errorDescription}

    -

    - Please try again later. If the problem persists, you can ask for - help from the server administrator. -

    -
    -
    -
    - -
    - Sign in with Your Mastodon Account - - -
    - + <> + Sign In +
    + +
    +

    Authorization is failed.

    +

    {params.errorDescription}

    +

    + Please try again later. If the problem persists, you can ask for + help from the server administrator. +

    - -
    -
    + +
    + +
    + Sign in with Your Mastodon Account + + +
    + +
    + +
    + + ); }; diff --git a/src/material/Img.tsx b/src/material/Img.tsx index 774460c..8cb33c9 100644 --- a/src/material/Img.tsx +++ b/src/material/Img.tsx @@ -3,14 +3,12 @@ import { splitProps, Component, createSignal, - createEffect, onMount, createRenderEffect, Show, } from "solid-js"; import { css } from "solid-styled"; import { decode } from "blurhash"; -import { mergeClass } from "../utils"; type ImgProps = { blurhash?: string; @@ -24,6 +22,7 @@ const Img: Component = (props) => { "blurhash", "keepBlur", "class", + "classList", "style", ]); const [isImgLoaded, setIsImgLoaded] = createSignal(false); @@ -61,21 +60,21 @@ const Img: Component = (props) => { const onImgLoaded = () => { setIsImgLoaded(true); setImgSize({ - width: imgE.width, - height: imgE.height, + width: imgE!.width, + height: imgE!.height, }); }; const onMetadataLoaded = () => { setImgSize({ - width: imgE.width, - height: imgE.height, + width: imgE!.width, + height: imgE!.height, }); }; onMount(() => { setImgSize((x) => { - const parent = imgE.parentElement; + const parent = imgE!.parentElement; if (!parent) return x; return x ? x @@ -87,7 +86,14 @@ const Img: Component = (props) => { }); return ( -
    +
    { diff --git a/src/platform/DocumentTitle.tsx b/src/platform/DocumentTitle.tsx new file mode 100644 index 0000000..bf1e51f --- /dev/null +++ b/src/platform/DocumentTitle.tsx @@ -0,0 +1,22 @@ +import { children, createRenderEffect, onCleanup, type JSX } from "solid-js"; + +/** + * Document title. + * + * The `children` must be plain text. + */ +export default function (props: { children?: JSX.Element }) { + let otitle: string | undefined; + + createRenderEffect(() => (otitle = document.title)); + + const title = children(() => props.children); + + createRenderEffect( + () => (document.title = (title.toArray() as string[]).join("")), + ); + + onCleanup(() => (document.title = otitle!)); + + return <>; +} diff --git a/src/profiles/Profile.tsx b/src/profiles/Profile.tsx index 02bd5de..fd4b3f8 100644 --- a/src/profiles/Profile.tsx +++ b/src/profiles/Profile.tsx @@ -65,6 +65,7 @@ import { } from "../timelines/toots/ItemSelectionProvider"; import AppTopBar from "~material/AppTopBar"; import type { Account } from "../accounts/stores"; +import DocumentTitle from "~platform/DocumentTitle"; const Profile: Component = () => { const { pop } = useNavigator(); @@ -216,355 +217,360 @@ const Profile: Component = () => { }; return ( - - - - - + <DocumentTitle>{profile()?.displayName ?? "Someone"}</DocumentTitle> + <Scaffold + topbar={ + <AppTopBar + role="navigation" + position="static" + color={scrolledPastBanner() ? "primary" : "transparent"} + elevation={scrolledPastBanner() ? undefined : 0} style={{ - visibility: scrolledPastBanner() ? undefined : "hidden", + color: scrolledPastBanner() + ? undefined + : bannerSampledColors()?.text, }} - innerHTML={displayName()} - > - - - - - - } - class="Profile" - > - - +
    + + + + ); }; diff --git a/src/settings/Language.tsx b/src/settings/Language.tsx index 4a72cb1..190624f 100644 --- a/src/settings/Language.tsx +++ b/src/settings/Language.tsx @@ -26,6 +26,7 @@ import { useStore } from "@nanostores/solid"; import { $settings } from "./stores"; import { useNavigator } from "~platform/StackedRouter"; import AppTopBar from "~material/AppTopBar"; +import DocumentTitle from "~platform/DocumentTitle"; const ChooseLang: Component = () => { const { pop } = useNavigator(); @@ -53,67 +54,70 @@ const ChooseLang: Component = () => { }; return ( - - - - - {t("Choose Language")} - - } - > - + {t("Choose Language")} + + + + + {t("Choose Language")} + + } > - { - onCodeChange(code() ? undefined : matchedLangCode()); + - - {t("lang.auto", { - detected: t(`lang.${matchedLangCode()}`) ?? matchedLangCode(), - })} - - - - - - {t("Supported")}}> - - {(c) => ( - - {t(`lang.${c}`)} - - - - - )} - - + { + onCodeChange(code() ? undefined : matchedLangCode()); + }} + > + + {t("lang.auto", { + detected: t(`lang.${matchedLangCode()}`) ?? matchedLangCode(), + })} + + + + + + {t("Supported")}}> + + {(c) => ( + + {t(`lang.${c}`)} + + + + + )} + + - {t("Unsupported")}}> - - {(code) => ( - - {iso639_1.getNativeName(code)} - - )} - + {t("Unsupported")}}> + + {(code) => ( + + {iso639_1.getNativeName(code)} + + )} + + - - + + ); }; diff --git a/src/settings/Motions.tsx b/src/settings/Motions.tsx index 93b900c..c8cf84c 100644 --- a/src/settings/Motions.tsx +++ b/src/settings/Motions.tsx @@ -19,9 +19,10 @@ import { useStore } from "@nanostores/solid"; import { $settings } from "./stores"; import { useNavigator } from "~platform/StackedRouter"; import AppTopBar from "~material/AppTopBar"; +import DocumentTitle from "~platform/DocumentTitle"; const Motions: Component = () => { - const {pop} = useNavigator(); + const { pop } = useNavigator(); const [t] = createTranslator( (code) => import(`./i18n/${code}.json`) as Promise<{ @@ -30,55 +31,58 @@ const Motions: Component = () => { ); const settings = useStore($settings); return ( - - + <> + {t("motions")} + + {t("motions")} - - } - > - + } > -
  • -
      - {t("motions.gifs")} - - $settings.setKey("autoPlayGIFs", !settings().autoPlayGIFs) - } - > - {t("motions.gifs.autoplay")} - - - - - -
    -
  • -
  • -
      - {t("motions.vids")} - - $settings.setKey("autoPlayVideos", !settings().autoPlayVideos) - } - > - {t("motions.vids.autoplay")} - - - - - -
    -
  • -
    -
    + +
  • +
      + {t("motions.gifs")} + + $settings.setKey("autoPlayGIFs", !settings().autoPlayGIFs) + } + > + {t("motions.gifs.autoplay")} + + + + + +
    +
  • +
  • +
      + {t("motions.vids")} + + $settings.setKey("autoPlayVideos", !settings().autoPlayVideos) + } + > + {t("motions.vids.autoplay")} + + + + + +
    +
  • +
    +
    + ); }; diff --git a/src/settings/Region.tsx b/src/settings/Region.tsx index 3c87e49..ebcad31 100644 --- a/src/settings/Region.tsx +++ b/src/settings/Region.tsx @@ -24,6 +24,7 @@ import { $settings } from "./stores"; import { useStore } from "@nanostores/solid"; import { useNavigator } from "~platform/StackedRouter"; import AppTopBar from "~material/AppTopBar"; +import DocumentTitle from "~platform/DocumentTitle"; const ChooseRegion: Component = () => { const { pop } = useNavigator(); @@ -48,59 +49,62 @@ const ChooseRegion: Component = () => { }; return ( - - - - - {t("Choose Region")} - - } - > - + {t("Choose Region")} + + + + + {t("Choose Region")} + + } > - { - onCodeChange(region() ? undefined : matchedRegionCode()); + - - {t("region.auto", { - detected: - t(`region.${matchedRegionCode()}`) ?? matchedRegionCode(), - })} - - - - - + { + onCodeChange(region() ? undefined : matchedRegionCode()); + }} + > + + {t("region.auto", { + detected: + t(`region.${matchedRegionCode()}`) ?? matchedRegionCode(), + })} + + + + + - {t("Supported")}}> - - {(code) => ( - - {t(`region.${code}`)} - - - - - )} - + {t("Supported")}}> + + {(code) => ( + + {t(`region.${code}`)} + + + + + )} + + - - + + ); }; diff --git a/src/settings/Settings.tsx b/src/settings/Settings.tsx index d349227..9f75457 100644 --- a/src/settings/Settings.tsx +++ b/src/settings/Settings.tsx @@ -41,6 +41,7 @@ import { makeAcctText, useSessions } from "../masto/clients.js"; import { useNavigator } from "~platform/StackedRouter.jsx"; import AppTopBar from "~material/AppTopBar.jsx"; import MastodonLogo from "./MastodonLogo.jsx"; +import DocumentTitle from "~platform/DocumentTitle.jsx"; type Inset = { top?: number; @@ -197,225 +198,228 @@ const Settings: Component = () => { } `; return ( - - - - - {t("Settings")} - - } - > - -
  • -
      - {t("Accounts")} - - {t("All Notifications")} - - - - - - - {t("Sign in...")} - - -
    - - {({ account: acct }) => ( -
      - {`@${acct.inf?.username ?? "..."}@${new URL(acct.site).host}`} - - {t("Notifications")} - - - - - - - - - - {t("Sign out")} - - -
    - )} -
    -
  • -
  • - {t("timelines")} - - $settings.setKey( - "prefetchTootsDisabled", - !settings$().prefetchTootsDisabled, - ) - } - > - - {t("Prefetch Toots")} - - - - - - - - - - - {t("motions")} - - -
  • -
  • - {t("storage")} - - - - - - {t("storage.cache.clear")} - - -
  • -
  • - {t("This Application")} - - - - - - {t("Language")} - - - - - - - - - {t("Region")} - - - - 0 ? makeAcctText(profiles()[0]) : "@")}/profile/@tutu@indieweb.social`} - > - - - } - > - - {t("About Tutu")} - - - - - - {needRefresh() ? t("updates.ready") : t("updates.no")} - - - - window.location.reload()} - > - - - - - - - {import.meta.env.VITE_CODE_VERSION ? ( - <> - - - {t("version.code")} - - - - - ) : ( - <> - )} -
  • - {import.meta.env.DEV ? ( + <> + {t("Settings")} + + + + + {t("Settings")} + + } + > +
  • - Developer Tools - { - const k = event.currentTarget.value; - setupSafeAreaEmulation(k); - }} - > - - - - - - - ) : undefined +
      + {t("Accounts")} + + {t("All Notifications")} + + + + + + + {t("Sign in...")} + + +
    + + {({ account: acct }) => ( +
      + {`@${acct.inf?.username ?? "..."}@${new URL(acct.site).host}`} + + {t("Notifications")} + + + + + + + + + + {t("Sign out")} + + +
    + )} +
    +
  • +
  • + {t("timelines")} + + $settings.setKey( + "prefetchTootsDisabled", + !settings$().prefetchTootsDisabled, + ) } > + + {t("Prefetch Toots")} + + + + + + + + + + + {t("motions")} + + +
  • +
  • + {t("storage")} + + + + + + {t("storage.cache.clear")} + + +
  • +
  • + {t("This Application")} + + + + - Safe Area Insets + {t("Language")} + + + + + + + + + {t("Region")} + + + + 0 ? makeAcctText(profiles()[0]) : "@")}/profile/@tutu@indieweb.social`} + > + + + } + > + + {t("About Tutu")} + + + {needRefresh() ? t("updates.ready") : t("updates.no")} + + + + window.location.reload()} + > + + + + + + + {import.meta.env.VITE_CODE_VERSION ? ( + <> + + + {t("version.code")} + + + + + ) : ( + <> + )}
  • - ) : ( - <> - )} -
    -
    + {import.meta.env.DEV ? ( +
  • + Developer Tools + { + const k = event.currentTarget.value; + setupSafeAreaEmulation(k); + }} + > + + + + + + + ) : undefined + } + > + + Safe Area Insets + + + +
  • + ) : ( + <> + )} +
    +
    + ); }; diff --git a/src/timelines/Home.tsx b/src/timelines/Home.tsx index 3153f52..e7774bc 100644 --- a/src/timelines/Home.tsx +++ b/src/timelines/Home.tsx @@ -5,7 +5,6 @@ import { createEffect, useTransition, } from "solid-js"; -import { useDocumentTitle } from "../utils"; import Scaffold from "~material/Scaffold"; import { ListItemSecondaryAction, @@ -30,6 +29,7 @@ import { import AppTopBar from "~material/AppTopBar"; import { createTranslator } from "~platform/i18n"; import { useWindowSize } from "@solid-primitives/resize-observer"; +import DocumentTitle from "~platform/DocumentTitle"; type StringRes = Record< "tabs.home" | "tabs.trending" | "tabs.public" | "set.prefetch-toots", @@ -38,7 +38,6 @@ type StringRes = Record< const Home: ParentComponent = (props) => { let panelList: HTMLDivElement; - useDocumentTitle("Timelines"); const [t] = createTranslator( (code) => import(`./i18n/${code}.json`) as Promise<{ default: StringRes }>, ); @@ -179,6 +178,7 @@ const Home: ParentComponent = (props) => { return ( <> + Timelines diff --git a/src/timelines/TootBottomSheet.tsx b/src/timelines/TootBottomSheet.tsx index 79fed0f..889762c 100644 --- a/src/timelines/TootBottomSheet.tsx +++ b/src/timelines/TootBottomSheet.tsx @@ -14,7 +14,6 @@ import cards from "~material/cards.module.css"; import { css } from "solid-styled"; import { createTimeSource, TimeSourceProvider } from "~platform/timesrc"; import TootComposer from "./TootComposer"; -import { useDocumentTitle } from "../utils"; import { createTimelineControlsForArray } from "../masto/timelines"; import TootList from "./TootList"; import "./TootBottomSheet.css"; @@ -26,6 +25,7 @@ import ItemSelectionProvider, { import AppTopBar from "~material/AppTopBar"; import { fetchStatus } from "../masto/statuses"; import { type Account } from "../accounts/stores"; +import DocumentTitle from "~platform/DocumentTitle"; const TootBottomSheet: Component = (props) => { const params = useParams<{ acct: string; id: string }>(); @@ -65,11 +65,11 @@ const TootBottomSheet: Component = (props) => { () => tootContext()?.descendants, ); - useDocumentTitle(() => { + const documentTitle = () => { const t = toot()?.reblog ?? toot(); const name = t?.account.displayName ?? "Someone"; return `${name}'s toot`; - }); + }; const tootDisplayName = () => { const t = toot()?.reblog ?? toot(); @@ -163,6 +163,7 @@ const TootBottomSheet: Component = (props) => { } class="TootBottomSheet" > + {documentTitle()}
    diff --git a/src/utils.tsx b/src/utils.tsx deleted file mode 100644 index 167df79..0000000 --- a/src/utils.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { - createRenderEffect, - onCleanup, - type Accessor, -} from "solid-js"; - -export function useDocumentTitle(newTitle?: string | Accessor) { - const capturedTitle = document.title; - - createRenderEffect(() => { - if (newTitle) - document.title = typeof newTitle === "string" ? newTitle : newTitle(); - }); - - onCleanup(() => { - document.title = capturedTitle; - }); - - return (x: ((x: string) => string) | string) => - (document.title = typeof x === "string" ? x : x(document.title)); -} - -export function mergeClass(c1: string | undefined, c2: string | undefined) { - if (!c1) { - return c2; - } - if (!c2) { - return c1; - } - return [c1, c2].join(" "); -} From 0c7cb920f50ca1859535f97a4dd254899e4756b0 Mon Sep 17 00:00:00 2001 From: thislight Date: Thu, 2 Jan 2025 22:59:09 +0800 Subject: [PATCH 34/57] RegularToot: remove top and bottom margin * TootActionGroup: improved animation --- src/timelines/RegularToot.css | 4 +--- src/timelines/toots/TootActionGroup.css | 12 ++++++++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/timelines/RegularToot.css b/src/timelines/RegularToot.css index e00535e..1fb46e1 100644 --- a/src/timelines/RegularToot.css +++ b/src/timelines/RegularToot.css @@ -9,8 +9,6 @@ transition: - margin-top 60ms var(--tutu-anim-curve-sharp), - margin-bottom 60ms var(--tutu-anim-curve-sharp), height 60ms var(--tutu-anim-curve-sharp), var(--tutu-transition-shadow); border-radius: 0; @@ -36,7 +34,7 @@ } &.expanded { - margin-block: 20px; + z-index: calc(var(--tutu-zidx-nav) - 1); box-shadow: var(--tutu-shadow-e9); } diff --git a/src/timelines/toots/TootActionGroup.css b/src/timelines/toots/TootActionGroup.css index b82432c..11653e6 100644 --- a/src/timelines/toots/TootActionGroup.css +++ b/src/timelines/toots/TootActionGroup.css @@ -2,7 +2,7 @@ padding-block: calc((var(--card-gut) - 10px) / 2); contain: layout style; - animation: 225ms var(--tutu-anim-curve-std) TootActionGroup_fade-in; + animation: 125ms var(--tutu-anim-curve-std) TootActionGroup_fade-in; display: flex; flex-flow: row wrap; justify-content: space-evenly; @@ -32,10 +32,18 @@ @keyframes TootActionGroup_fade-in { 0% { - opacity: 0; + opacity: 0.5; + transform: translateY(-10px); + margin-bottom: -20px; + } + + + 25% { + margin-bottom: 0; } 100% { opacity: 1; + transform: translateY(0); } } \ No newline at end of file From 01b753841e3c50ed653ff59a8f860988c1790465 Mon Sep 17 00:00:00 2001 From: thislight Date: Thu, 2 Jan 2025 23:24:05 +0800 Subject: [PATCH 35/57] TootBottomSheet: fix the margin of the main toot --- src/timelines/TootBottomSheet.tsx | 40 +++++++++++++++---------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/timelines/TootBottomSheet.tsx b/src/timelines/TootBottomSheet.tsx index 889762c..68932d3 100644 --- a/src/timelines/TootBottomSheet.tsx +++ b/src/timelines/TootBottomSheet.tsx @@ -173,26 +173,26 @@ const TootBottomSheet: Component = (props) => { onChangeToot={ancestors.set} /> -
    - - - - - -
    + + + + + Date: Fri, 3 Jan 2025 20:47:06 +0800 Subject: [PATCH 36/57] Tab: use bigger font-size for CJK --- src/material/Tab.css | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/material/Tab.css b/src/material/Tab.css index 83bff90..38f49d3 100644 --- a/src/material/Tab.css +++ b/src/material/Tab.css @@ -9,6 +9,15 @@ font-weight: 600; text-transform: uppercase; transition: color 120ms var(--tutu-anim-curve-std); + + :root:where([lang^="zh"], + [lang="zh"], + [lang^="kr"], + [lang="kr"], + [lang^="ja"], + [lang="ja"]) & { + font-size: 0.85rem; + } } .MuiToolbar-root .Tab { From 0ca81cd50c504d0a16c1080740e640646d494111 Mon Sep 17 00:00:00 2001 From: thislight Date: Fri, 3 Jan 2025 21:43:12 +0800 Subject: [PATCH 37/57] RegularToot: fix layer order in the profile page --- src/timelines/RegularToot.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/timelines/RegularToot.css b/src/timelines/RegularToot.css index 1fb46e1..79ef965 100644 --- a/src/timelines/RegularToot.css +++ b/src/timelines/RegularToot.css @@ -34,7 +34,7 @@ } &.expanded { - z-index: calc(var(--tutu-zidx-nav) - 1); + z-index: calc(var(--tutu-zidx-nav) - 2); box-shadow: var(--tutu-shadow-e9); } From 1128a01e4c849545042ac77571a96135f3e2ec0f Mon Sep 17 00:00:00 2001 From: thislight Date: Fri, 3 Jan 2025 21:43:41 +0800 Subject: [PATCH 38/57] TootActionGroup: add hidden animation --- bun.lockb | Bin 510590 -> 511484 bytes package.json | 1 + src/timelines/RegularToot.tsx | 19 +++++++++++++---- src/timelines/toots/TootActionGroup.css | 27 +++++++++++++++++++++--- 4 files changed, 40 insertions(+), 7 deletions(-) diff --git a/bun.lockb b/bun.lockb index 69cacb89e67d73ef5c0c2db5300e6386abdd9119..d4f126222e69f3b7917f5e09d3b4938e4788aacf 100755 GIT binary patch delta 107307 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 Ic+r^u0R&)V_y7O^ delta 106697 zcmeFad3+SbqV_*CFpyDEL6#6?iGYHN5)~#881_X(ARt==aR`9~LK3pDxdc=cR8(xS zAc`6h#qB66ipLcd1$R^wqNq_h;4UghaQ%Isu9}$R^?L68y!UsnuPQpeXyhYVWTEAnzd=pO@5h>aTc*k{A*^qih{Qo&v6!5g;D>-*J~ z`T>33SvIzH`A?hc`X&%4Eh{Zk@Q^xzK%+ol!5pW*h5~`Z@VWRS(7pHu=#w0HIGPgX z81zV|_raBJ6{>u8x#LR;^Yf;3nqKnHdN#f!r?_x-c|1RmT~bmyuP7(5jtHITy`(@O z8QqAsKyO1^qL-j;&|LIrbU4}^Jq=a56f^~`gEm9=Q_VwB^6ykyoRhPa%vJE2Qwlmw ziI>LLaK3YN!ndGJ(HPZHO>#=I8L<}6brJ@2%4Q6&!0iV@4@RdRj3*^H(t_dYJPm$ zYk1Y8UK3lK(Wr{~2AQdN&!Eb00CiA%JcsJ^_oB2z`GS*dV8JFF$1a#&LJc`#5#?9L zB{?%^=M)D5(@P2qy1=L96qL*>$PWCIUQiG2K~6Lq%@F>Zxtw~eEVM|N$^Cr`vQ#;xon^IWXDLY=0Q&8wjVCeCd zk0)NozlB#%j=-xS2cXI)167ZAcD@P%ZWBY1DEgt>Z67&EGx~A&&w%Z z+sXPLQ4Nu4Ii;OS^5*B<)XDpM-GSX7>TJ(*r_)ua2Kwr>K!Cxw;5vK+&CV~GOLYR5 z<5ixOr+D4NCk5+zdEr6j4@3ijV}Us(lgsk*rv&cmZae2XRGoF9(_E(`o%TdEC_17V z{!N?)oqpNP@*Pe$IbG*;mDTbEmlIHF=Qy3>G}CD>RGr(&X$z+jr$40I_?4)J_3}RU z#Etq|egLn=u7_9ae1~eGv-6f=ex+-HB2*d7%$u2`<{E=f!Ot(8A{!Wl*MZ$o_0mbG zy1A{>#7f#6uV!94(CYc97LaCxZ2Bxz1v!#*k#Yj92HTY~u@W4K*9q#O$|#;)SX@8> ze&Im%=l4#t<3$BUok~mQ6c*3ODV`EYI>XMlFNWBPyn<@j-;Zh~z6NcBmK99N%gze~ zx}M20qZ-XCEX&U21P=jJqhHWN(Eh`06SAU}#wX|Jyo*;~&nzn`jc4cPWEU3B$fK=( z>gonsE`Cb9xHu<1WlCOg(UK9C_d`{oypm4S@(U*i24>p)yNqC&QN-&2HPP`TQ~@Rz z$Fp-v0)bT{ZNiUHrRy@vW*9G+H#1(Eom-s4nlw8naL8G`?f?H^l>g_0JdIJT(f{v8c|p9OFpqIKYJ!&)IjQ`?Nw$LFb8U~@iC4ud zQ1$2)PSa3Lp1diO>0f3xUSqlpRlU!4z8|U;b;mlefJH8M(bW){suPoxMm zWch;g2xus@MKvaspc8$b;(Qeus0Us|k3=)3+H?$o!pYOg9M5WAv;D}PW-IV8ssfi5 zpT?l#Vpmo$FS~F`&Yf`eU~yr7epylfKwupiYZm1fPKlRLM1Np$z~c;Top2qhp|loN z0k7nwYMF0PwbVz`y%!HTsr;sVn~g4_Q}gn3JiHFO6xI0*r%{7liHgUk&sMPlS2L>A zZ|9+EhpF+B(oSW?dHHyqCYSW>(Bq2i(%o*BJx>v;cG(X18*&!`WgITH<$M~i^4{R| zuo8Qsg{XSuN7AW*rWF>^)PcZExC(F-8EXpFFSGs^j#m%ghKffhx6bnoUKQJd9-*uJ zdIE~*O8+Y1wWw+^wXnET4zs+@TpK@hj?Hl0eA^<&xpZ^SvloKM`L^J_Nv{eVfFFtO zL6z?ZsQ64&=WD|8jmim}&H-wYU(sghZl~K&)$}n`U9cKWMz2D3K5B*f;)H_lt3VQ^(9_MCoj$ImPV31A#}E z*is~4Zrk&IyxO+{RW(ayveGhD18D$_kSSN#g!ek_Nrp<;_ewj$5*NyQ@M^bXh*vc> zEwvdxg!=7!m2Hl@9bbj2|NcB5M%dwGqyhv`CA|L{d%~|L+6;eKW%=8vwsQ~NWVa;e z-fT}ahwnQJt_Es)2DY8MZ=ObE5X>-Wvmflh7AY<-Z0MKOgOg zjzi1a5$H}p2NvHI2%Lf*jz1CIbAzqvCbTVn{ynxvH{zASbX4g(Ee`}vM&G;F)-ZOT zJw6$waTfgiH+#kJM|u?`6+H&sUqSyXqxxi^gfCXu62Etyt@-VE74UpiO}8Gd3`XH~ z+|_s;*9LzoItkwy{dJ{1!Hei=_&ZQlpd9Uhj&*w4O4?r$A%JS~>I!?nNo16U{~Nvy zdO50sG=Qs%a`0-(L8w|T1?_~+@oYgqH?~DidomD6hi}5Gpl1=U^Ie9Iq49DT(G%4P zl2K*+<@L4&UPW8uZ$s4royb5fa6aCz399rRQT6q2w4~Av*kn(*18sqS6|M?>e63A? z2VVJEu5Ltc8WdzsJHCQejAN2*%#c&363J6?qG@v zi%ZA8;a%RSRryD6+w_y;#W|e{O9H-5EeYKCjxA3K4*=pb=LVKJfAV&F-u9@@do)V^ z3$~Mw{N&T(DlWT*nMKkqJM2={#>JmgWy^IIO8W8z_20Ei(?4BAV#j*~2Q(zZGv2cq z|F+F8?fqPZ_u>yH{$3hZ4RPyEn{JQOE77L#{K9GKhy28%f2KRW-v?S@SR1KfLD@`t z6rdW+$<6b(;&~-Gb91Oc(+}+l9(6tV$D4@GWT=KsJPeo@FP>JyahHE&D{vlq1o4Ha z3YzWok&n5ybphN%Kx^M0Yml9vSC&UchwZXWJTEPs(G&=LRqbUpZdKmt9~OUHZ4VFb zw&yD;%$}k1ufXekSD~s`n>|*imrVAv`Hth&fS;f$U$0MX`huL&nembtfh+JTR!&J# zao)^$;Hb~+`949(uYAEF4roNN?+PS(?uO58!Zu`}d7XH=QB+(wjoXEi?XJMRzO*O& zV}s6%m(9wo#$4w)D6 zs>xGMGxyr#Zbus^V|Lh`X5`HKmh?)ODDcd@g1n-5Nl9Y=@G0>s$o%ifx17LC0?HuK zLy4~a{CnH9iJnb7h$`4>GdKi2isOEw;Hp4dH))HfO+FQGD0FqH|MRSVt3Ihv&u?3ikHij3)*(x!} za|%lHO7n6`hQT!^I-;t{X}{S5_QR{`rxecgcM>h|D)_1Bk?6I7pkJ}YsE#`|I4>qo|sP8v{C}yfknJpb=nF6I-(eO>M>jR5NG~T;nM5 zWc1u??AH3NX7+?nqFT+@I;D600{pSSiM#T|vv)>Gpn<09A8*eS59JdN>l3%@iHG=! z+xGwN?fTKp?SM!;c$vx_c|A?3b?10PQd*S{YGVhIhicsY@p;HGskWm3mmdC=FZjdL zzyJKXNH@Di{kz8^iHCnh#W|(S@ZuM#tJbz#I@k&5uK=B9mRyhbSM533bMmI}NMlOQ z)OcBbX-Rf|VSxtSViIV~Ov#%%RSmYD-zNB(gLpV%0D zL%f!z#NFM=F1>&K)vRa-&|344PCPP!06EQI&qB<2RmW`4>*R zcCiai;*!DcE4#E)Udh!i{!*0Ml`puUtIa59Zc$D)4bVDjPjon{CHiCM|M=y}cDQPv z_|oJR=kMxf*9;GBMtni{pnuPQ8D14h&aln@Eb0AzEXntu`UJuNwRd)2r@Vrxg@Gm1 zOe6c+9(IcFMRmf&)88v-F-`Sjxd^Hy9*Nm*NbIBP<5hv1QMFjY)A)WrkANT2lZftp z?Nn)xYM?YiHS&JzWAzKCRj9hCQ-8bKZt3G4->OylqhOWuF4Vtf4z$@kf~s8ipei?; z01dA|)bU3L*#>Di*q)|1+mEgppV~Fdd@Lrq&tdbw=Bm183P)v#r|*eS=pCb~{bX=^~zns!F$vvB%xu`tC}ny55xJ z2LgAGwZ~rwR})Py%9+MDsDV?s9%vUZ3r-1-S}?^177RxfF`$okZJU89z0bDCcR~G< zPwAr529BTLecPsMx84jvwPYt$J(j3gGF~I`qlvab|IyR>rIY;Y@Pb3Ucxtoq#76u_ zsB)Q_S1_ehSyA9WTXFb;p_si_U^eMBGpC>$7m2Si$Klm|uW~j`tcysi#ye$-?Uv(E zRidqJ-0}tba-dVu3^wEc+Uncz8fY8PmS|3Kv7SKA4NtQfOn~bmybiC0v|FyN-hHSl zato@N)CpCAZY7<3FPERKXn9fK->XKZ94duR>Mxhn(+LNILBXIucNcQ&5#~EeUj@wr>0-HuMdNS5qFCX*1q~>O}82 zeF0TIk2t-kahnlHTm+kX zk#;ASA2Z)(H=WJ8PW$0JTZ|HlSA-vYo~`dms7_lNFYd&{f~PmqEomg~4mOg)X$kb4y=&&DvMM7Y?1`lk;A8C%g|;eQ!b4K8aTpy5s$f z3-b%fH*n7ad*c15cw*@8p<-&!_fefVH-@1aF^TJZ;(DIAA9?0dTYwWUqh&QT zuOgrlxvwV{^jmCeocNX^@vTGRTZky}>WVg~R)@FT@s~JdNi1Pt1<;vs`milrEzu0s zaY?8uu=t8#V5%}md_9r)zGTIfwnmFljrGL$Cv)(s*#K&&3`_E6&de#EUUK)0>SLUvbzkmreWOhoVcr{(N1-(9OqBy1Db6C)PXq+T+_K?R@IJ8>hWK zX3K+Zj!$nFJlY#StXFV}{)V^J2?Tn36NhDlo74>i2Ku413H9|_7WD8|4(}Cg=k4I{ zxnA=Ty@EG-PN_*iIGL$3cr}~(O02JHlgnRQPmaE(5j=ns|4^jL0NHu6CKx@cnY$PEPZMpJHcLM(CWTUdlPK$OjCr zk>nHf;uE6bG-lKgzZuSJ=2a101sLc@S5JtBIwpHrlVahsxooFmM|3E+eD24p<$A?8jD_eRgnX%B; zmR?qNEOc!vuOd4Zsbo&E1}>=Q7jai>uZp-%ZM>8zvB;b@wkZN$>d0th3vMVWgC;&P zm>x{^vPQ;2V^h5Vv!(=x~gBt?~FmXzPPXk zNMwnNqib@bk=JnghM=xrxT20;)$~~C){b7vj9B>nj_TZ&Gcv+WkJl_#Xbhnq-o)V< z;cE#o!eE~e8tk(ZPoSH8HkDA!A3nF8pv)p43UH#3Nj*21p2Ya?jSG6IGos;ha5k&E z2>IDZ{-ID!!H((VRTRV`Q#;wA&aBRih92(Zr4%yMPttIqNRgR@?4++A9SyI+kymC$ zxSCLRZzq$X#mR{j>aI~Idlf~o$juJc^-{-1Bk$mJ;(!;Q6pb9!IdOnS!Wp<;eq3c< zH1t$wuWD8-@&mA&JpkA_&C4o|g>uup3gqE5uc|l}`8CZ>4u(KcG;#_vgJZNdF_9OCUP&Ip}&s+Uz73r#=Ot3aMT)vH2Up5~>L#lmAwQ^U6$n-RL{ zG_Rs8772B+J?-Zl?vIOk6PNS|cJZ=i$3nZicoj&`u3i;#SywM*PAvQ@=T7$~=43>= z(sXPYG)@bmp{LWmDxxxOwd=VXMB$na+`p|f46SCH9^|E?yc7Y#?TVM_=N_Cs51 zLe07NwJcr}y0a#N{$9&@J?b*L z`uhju)r9V?3GGdUB3=5h{`i$t$US3l;VCDlUvg9$*R)t#OeX z4Tikt<-H<<``Pq$O=VFqy)G`>+c_d5@)M!6Y_7wjk>UMqfBOq`xEwdan@HEb*59jG zKo0=8%rbua4@fLYtXh%9IL#Q=V+!;90Iy3s$&2SiBYC(}iNj5chHu0%%g1I!-c|_CS~4LTJklG#h?QuFSFtD-KK2YaIa!XEcESg zuWCswnCb0U(kpx|9Zqe=WJF#jq!#e|DRN|{y~xz{w3v**^)RcZ1$!hBQmT;Ow$->H zzN;RVo;1?-SXhf`BoC)klilcOfS9{)F}WYMkrv!f5EFv%Hk6V&Nl4b1r`jWfIb2AM_V=Z?soM^h?0u z-p;Es!YO0;CfE;6s|h_+6AF$^#112LhM#UFq0{})M>U}n#wA#3P3Vc5P`&Yq*x@yy z6*Zx1LW8_jUXQw23aC(pHKB)VLcb6i;K%koI}y69CiHS56ly)etGF)KVa^0D0#rK` z_}9<5@MiG$mt1q{x}RP;-s?RqIkFXaN}`P-btcxh5z$B&oEB#$%ZO+=2X~U!lI@8{ zh+WyRjL61Gw(shjcqWsc)#G%pWno5mG9j)vY@BZ*$rzBb9CXy_H-O%hGsyVx83N z8HwxeZ#-_8?p56!i~I=Ce4%NWYF%g8&hr=5$b1}EJ_1;V-I z{laLdXMvZsIu^c_MjhtQ<8KJD9=X=}Q@NL}REQX_wwbth6{b zb2-s)=UEibug-;pxR{VvWp*_5>@2ThO)PYHv2K*YLyOg3J4a_kE>*}+rK``=H7>O< z8fjfZxoi#v(a1_1vz`3ZJbQ6NeWyzHEKM|)8f7NV)Xr7mH7n}Tfi6koN zZk)P^ivd@Y*7Ln8l1!YRIJxqC38y}?c^-FO?ZcPiM*4B_{Pd*r6RlNQ+bEAqiL%2} z?p2(vP9;T1z94ZJBQ7!$S96IEUxOQ}4hy|^fmd~JERuR5bKahiL+8{uwd^Z6+v?OT z+`QahF-B&D%LuVLjLe9#8%p#=Q5nDAQOLwoN3uT*rV+L!UczZMa4n}m;md4+LMFbD>f%lz z&cA7jT!8D3V?AfXu@R?S*fuaI58%|nEP~9b=wjQT6rUcPhqKK=KZMpV_9`BUMRo(# z9c;pG&`V3atPQb9+shN9g^?7BU+z@_Zv?988Pi$O$R{|hlm0z?r12GY zmeup;X(3K!u^X2S&V{|yMd@`h?B&nSh)liGR+KA%)^J>3KRXH>Jj84MSg**yrEDBw zNBB$5E}UI7sBXCRRg~V_IUyr5mymjpjT;qz5~oz$VKF!N^BnE*SfuOKHVGvd8x7rX zwU;$K7TF2R@XuJeJ3Z+dTQ^dSiH3`D{zHS%v)6bjPsYNHmid>h@fkd8TKQzJ(2$$F zD)4tV@n*BP^T~`z;m!68wEoCwcs*{6o)ZKQ^>#efD^zfcm-2M1!zZ_}QRR#QK0$u# zDZppzEdl?*?RmHL8rt2Pa-qL-IHxi(KeQ>l4maC>WYOi;Kwz$(JcQo4)yvu#i`=rB zD01~1JKXd({!=Smh9j>MDyZQ-)&v3<`j_YD)_4`qaPhm{UB^x31jZSzmx|_9&yGe) zaM?J%i{ZBMZJZrF)n`Y;jqcDh5S|%@iwNcWq4x+~=!de_@>-i8dXZ4R|E#3zoxGXv zv%3gQ_d|{EO5}1Ip-X*s{M~`Td_Qy>p#neD=$=3zSE10=_jpy$bGr&C^>#knqwc-# zxL`eROK?*6#8*@5TZa&_Xw`{ zvR;aXm#pV&dcW)q9}WZ-`f08u#1p&cd(JljSi#B0{LMr#Gg#22E zyFQv|oyQ5;LkIpn5V*vf_)QGK zf0oesej$225eSs|C47j`0-xnS83ueF-J67N@=H7G=|t=Yglw;# zzA@3~>j};EbLsSq|JaSDUrNZ1;X2Q%6IQ*D5iTKA?5EpBDBsUH^SMM1yhg|#F=La? zrVjj`5KpNH4SiniKq&P3^Ip|k+-Sbw24Cpz7rd-(v2cscDw)o+h|pxe&2|&AwHm#} zg+kA6@haYqbr||$Aiz9ZP@g&3gx|!cGyG_Hs~dLA{_u$Yx0~KM!RB>=H~QsR@{-zw zF&aMZW&XK8Prg%l8{6LI<57!94g!>g!{g=XyVs;c=$V28alQl!=C zbuoRtRZ}t|$yGK3%DpifDa4&Y23#@N8~y$FI2yLayY_18KZ}UWzzy+FrR)59+))2G zUD<>0**Na{sQqZ1ifFrg8E&xev?JZ&;&=#M5e+u+n(yir8M!mjxoV$#aQ0|jkiT_K zHyP2$N$=Y&6xWBhqM?i4_a8_89jI}`#zo@>r^DF-@Wk}o54@D!vGDC5&^!Kys)~@J z8Pi-LPx+8TwLcF}@k6?Uyq-`uf6x9Jp>)#v1C@s`JNEPn^{Mt!K8;0|SKG-D@+vQk zMt;Vr^QrK39*BPARgvU|k8GRR=Q_J^14+W=k;kehd~6?3HSw=(`MBQ1v4f%yUd4^U z*@rUiKCwd~$=_W~#@WiL)o*gnpS$5I+$rA9+>A(*UA8?b4m~v-*O~nICV?lw<-5G9 zFJj?mfnB{-e2sB{kjhSUF?WmqutSx(#8}J6+0m7{I~utir=d#A64z+AtzME}p$Rzk z0qwCR8o3Q;E2R1P2~LG(fuQQg@3D?E@KwfCTxZSx@b!e)^YVDRy;WXs!qSoo##2sepDDLub8N_k(@CDm`oKlh>)A|6;mQj6t>UY*LgujS} zF8|J}I1r1x>>!U+IbhcJHc67H*6kEd1I9i_Jb>$u3z*dQ#O<>Mr~2H9pXVIw2ah)& z-REWf6pMTb9BxZS9eVte$85Mm)k~p^|LLXt9E&^&?5aGy%15G+?{R53?g$S=Bkg}k z%uO}o3|y8UC$|Zwj-e4hPEXoz+m~_nu5V5yhNjAkh7D1@wZeqoAvDmRTH_Dc^^@U3 zPIux|EB_fn_)9r`R})G5(bmted$JlAE?=WJ`>m7 zFNhZ3%W!V)UEwFxTK^MKb_Lh4AMmq1%swV6$BpyPrtW+P_xri8`Ng)6y~BGO zH-eP5Oo1Awn+uc~V*l7g|w^H6n>?aLpXV|dd@CxvZp_EK;ePTgnM zysbF(vwtCtw5n%wVL&rUM&eXs)^s}a7Mw~*Jt*&cI34G&zmcQs*EsHGC*Znz6L%EqmiCw+$049U2ydA_k8btNYFijlY0y|z9z2mp|#@*aiePDp21D5 zajg#v`cL(2o{MquL|ph&+(gszFdjcP2nMDlc;sGOPK|4Hc+kJ8wK>fC7xy~u_j7eR zqISwFafuSACt*}=Ka)_8BTd$k^iau>!NfBGp3SVsF%FoxdkJZ@MEon+2@T1}YdI<- zatEQ#aQf+-Xy~1WrmA5u7CyWY)%WA$gt`&WGrg>6_-Wi2|K`2vQHcSqZNLPaHfD^) z+0jU9W81%W`5KMuOPn3-24{P_vN{@ix3NiS%=sEM3F>z< zNVpWo)^u(xC5h zyzN=LyUxLB^Jvff9!`4#o>*~PaLx&I63)Luh3~=H>(~K8ngjNN)a}H?tkJm1!)Zj= zYwa4GYQiYuD)|9UGl?A(x5RBbS;sO$EvMo75ZBnNri^QGDzV-A{fN^Qn=iVV2}4dw z#IXU7EXL`4Tn^ddzkySmaNMowNhjMTvD=s4I7Km3*<)RavnP;y(K&l9O6qKnvnhMy zbR5?(rYlB=*^)ekQ)?aR&yjC&YI9Zw+PqzwZ53`WDDzp)aY5s`=q0!l{cZF8gfcjW z_GZca9H+&=K8eUW#kLP8=2ChSPI0y}pWy5WVWo=nJk|E0zvYiSic^c&T=wDA=FDp5 zc(>E+^4HRfFJecB>qne*2XH-or<=e*T})PIEtp+wjs22Gp2unFZ{+vcZ#a9r_AGt7 z+Pc`>uD}gQWozm0pq|I+x@c3i?jGdpbbY08kIaD z!%n{@ep8p=>=5RLGjbnJ-D>wR)i`ySU)a#mJxoehR0HC^ z>t!mWdwZEGG}5QH9b%M>1t8MLmYN%FzJ(pp*Hm;P&6>XUoc2!f2b?B!&{XP`u71|p z?WpG*QBEtq~i0l4r zJ|Vm5)g$p|a2m!e4@};yfwpvZd%p>%p=t+wWKg1;HGu})nL2 zJ4uFkxZPlC<*h2n2p1D#noZ4!+$lzSfAWNXz@_{AYiMU&b*a6ILl_l>0&RyZCQ=c>Jx$J)UYMe@H_pWc^)T;iqFw%OcZAZJ4zYV8F zj)}@8_IsQb+a7h#^aGox9z9hfGLC^Y6qWzbZw|Df$je3<@>d1vpj7AH1Q* zhMB5<42pk3`zC0(|8Rfs^5p0eKcq((&k?dyK)D1)*wu#38@uW5IGvA9V@ygi$m3Gcddu#~1U(8Iflcf-~M&bbtOA*L94IV_cD45l-7Id&hP+ zPF3|?=+iMKWhnE#^H`IGM&^vQ1t*pxAHvm~qs~`jgWkJe^o;ZvXRlT?4;O}FoXTfs z_}_5qc7IigeB&I?VTZ65jCUPw;>ER`r?0B+B96C8FUp8~q!2mKG1Mz1%Qh3|V)hKh zDUN|a$6SKbRnvaO`W#M8PS<}L4c0N^M`)XPc4DOJ-u_~os>9)ojwf)va1@-(e#U9? zhnB}F+XS1CxmU*P3OJpIgv`X%ICY$L+i*H77i-!pGSQxn*MxW{q#KS0s=SCfbD~KZ z#fnt{8SJg9&WLRzU&Oqfp^?97#2*qzqPnwiiYBhn^%K3Zb zrspOW5^Xic;G%v8sZX+N!`WLY>KT3>$E)6a;~$DA7ER5+Avjgi?uHiNG)V0B}Fw%l%oig3C%+o!ji zacWR|0qZx#&R_;PeY6y(9y>()ozTluOvQMHZ2cTtI_|^2PEW#UH2OD7p?~CP4-dz&6X1?}DIuMiLC#g=6ta}exazJXq_Wy2^c`^=S1%qq4kKYg)siL`n6%OlFa(n9LDZLX{8gLCZbwoE?^dS&4#Z0{6w)HkP}{xw@wE5C$nu zWwY}uP;8xlZH~lhT>P8#Bxh{GzyFJ?Ut)`ESN=0`CzEBsRG-F;{35K%$r|xVda%T# zOl5*6mC`BR#6=mA7@?YFJ2D@q#I_k8!f8R~?x;9jhiE;C_-~fymL*Ec1drT~(<(t< zGOfSIslK-V`^>g&!8*h=ycp+JMn=P9xbCK9ArA>$Dm%HNb8MmLBUzm`+dag4%P&*QF=Tt1-NWvS^;kn!#n|(|M*s zdeVGTB`uk6Qt~=AL3M9<{|^R&G~j+@Go1Dvv6u% zyXxGC)3Bm-S?@l=={P$qkGX&i8qOa;p3yYIe+Y|45u0KDcXfx}ecgytTFmXD^=ZE>D~; zeoJ~1Mx%*x(Z|>Qi`$HI%S2f;9J)dsqIYxq64JOJV`_FY&OeQbr|>i%$1a@WMz2hC z;5~%2d$s%VpK?-D`*OLDXp@NW(^=|?q zAK^5ZtZQ?%+cBHUIBVQ=ti}nEjGDi>NT$+P=}9ii-}r=jTw}7zncw->mopCb&r@M1nk~i!smYa%; zIp=rKex~I`!HiJX>ka=oZ1-}yRNWe=!!O&ZK#*V7JO3kv*<6OSAwJvM|zpC&gy;Y{qBrE?V z)q#^;`aje9#O1koY0#`%6l_+m@)Yu`^Ox|ek5t*smf<5+L(Y-mBbA@)bRMdYRD3?a z%I`vcmHz^M^;zKmwW|Ct=6^ooBLX#g1fgr4|0`9-*YO+XcO}2_H#l8|ir>nw3bdME zeg30zejT`m-#YxR{DF z9o402C%-!Gebrx0^%1|y_!EAW0k04E`W32=R0Y^8!>6|DxbJ-W=c@en^Q&|}x^z+% zp!_EXq=)faU(~4%h~TA%I&FX|$>ID_ff_pB2vxeqPMbPScAA1JeM_fpP=3k-sr=P} zZJoA9m9PWKPoSgz{12(-Kxdc#sc1;!uL}X4qbq-upeL#V^cMVsDt?gTQWgAkRA>l) z)Rn^=AAu^LQO=Kc%6+|`ew@7epPOeNa2M?B1XLes6LgmIQf0`dRsRJ|fGd^%`9D#e z|9>Q-|871iI~USJ{2FmRV?FA5IqQ+~;iBY!qzYc^lq-<`k*ejnZ1|u5j_Nq$j*}|5 z!s*JOTaO6%lVOdExE)ZiSb@@Z6GJM$S z1{W_?@KNXgO0}+Sbm^aQ>1(UdvnRTUXI;YQoR=!N$?5Y_bMFK03i2XW<$OhH{-8py zDmnU^iZQ(Kaml|`R^4-ll{}6JwE~e_&?S5L>*4|sRxhLpFgNjBmUGw zlTrB;{c)A9Y9rP}p%$)pPQcmA(b z#|?Jr{z{c@DCu<78;8nIaL1vI{Fxhfz*qB&%BAY%gH@fGP79nCqH3jLRQb(D^^wZY zckvfEE>-#ksPbEgo`l|qYTeHP^> zu*v!7W%x){v6mfx#rZc;<+mMGLEqICOM&+ts77^S{R>0ldr*D?pE>@O3?He|eT%B5 z-#Pu>#Y@Hap+Y}6J%B3TpHUqjD8~uZ;g1fe>wJBu`oAvn6KLS{NK{K-GOCPIP#xC- zRfesdZ{sx8=`pC%w{yNds*mZtEZEqe^v5|ORZb^3JsH)JX)eCDil6GZR3$mhX&1+( z3a0Z%`Sx(UmX`ZFm3}Tls*L(O|7WU<2D|v$s?I&r9Y4&)OV5Je>iB9@1z&?|klbCz zEqZqY^pPs~H~#2E4>)~TkdIWsM;(6xRYuPWI@Jj_IbT~(8uG5`PKS22je8eB+|FPqvcM(w2edfRys7BfM&i@nD z0Y9K>k)Ke00>AP{1rijm%OClAXdUx}7i`v0*&gMv{)azx%)NgPwoX&3R9Up0)8kMj zKN008(An`*(UAG&@4;sNVLcq~B}}qDC_jM#jt_Qv1{yLKTo)W(u8r;tEI)xlVRRO% zvzIzQ+v!}CpTPM}7obXaF{;unMs@to9%#9HJRcP zPILUfqRMB6J3im(On1Cg1uk@6s`C_;J5c1nEa#2)st&r}&LckxpB>z%Ky;>K~O<$naeS5w~L z5=u2FZ*{)5D#O)||CK7;Z7$uvD*gYj;9vcr9C)8QP^ygXce>7Tsao(s#~*TBs)}qt z)sl}neG*mrr&0g@XQKjuXHb2l>VnPAOBH;DKT7wiSv<xyvQ^hf5$;3HLZJ)d{{vmC-j&_quqg__xkWbzkr++6X;TwfS?kmx{kg@Sh#{ z-{xwWqg+9LS2zEg5upSrsQSFU^Bqw2;fYQ=qx#fVEx_I2YJu)9UCjAjF1=JO+6NUH zK1FA8C8^8t0`t{#sP$ zDfe99I+UM41%H&$DpUz?MwRdurob@8=T`^YwMMIFZT?QGbCUbumFV%?$qB?E}suSt|0jiHwO_Aw*W_@~42}Zhvqnw`Q5=fQd80V$R zV1n~f)o2o`e9m=TDj!F+kuE@WT&atfswL0&+g|~IO1!`&sI9HwH#z=aQJwf^mtLw0 zR5~wJ{H@OSOa!DV>3ygUSmzQ*b-)A8OXVL#>zW2z7(%$f<1YHoRLP$pUd!}mclZ{U zUaI&Pov*DzTOF^hO8b{dS>Wpfa z*GKM{KU3xTu}k-fOZR80bh})QuJUQ`l1p{?v8c+?(Q&CRbbVZW zUl%{X#Y;6@PDhpBFvtH)mB0QCaedJ4{)t8cRKByEj&TWUtK!GOmBDz$n+CTBn?+wwKtD zS-LjZx}h@p!5t(GnN_cG&^@nlkpB49{ZYA*@F$nBwyOBQ!4*|sm*YREPH>3hQsr|f zsvC`#sE$uXRj#(E24^Q!AJlHLYJo(AU;WPRz*C%_<_`Qb)d{+~bm^#)_Hn)+s)7zg z)emPl9ie~ZS|vOSppR4;jd5P81I~8-zoJ@KCzDZ+CpH)4Na=^gb7VzvB;}I?= z`4_p`Ku!4n!mGCqzL(_2?CRI^j?<4uA!*l!S|95zLyj@_+HZg58q4r^@v}&WInQIYj9f~vu%6u43qSBuz|UN&?D!*9c;qO zkUN5B1RI)pJAz|_jm%cbQKn-R(%3ANG%-6QO-1K5YXO? z{}8ZW;0b}_Or#pH_5;AoYCuQxsKB@n0WCiQoM7@k0wh%fUJ>YIntu$~AaKFQfRoJ@ zf!vP(ojw7inR%Z8l0OFQ6gbs%+y&Syuyhxoi`gMC_Y*+Re*mIp$v*%cb^*Q==w`a@ z25c8twHuIOJ{4H}55Spw06ophJ%IGxfL{c9nbSW7>=C&4Q$QbcKw!llz{Jl0{mh-8 z0S12xXz)2;fEoWeV86f<0)tHC3&7gX05iV;oNgW!8234#<(GgnOx~A(q%Q!k2%Kq} ze+AeeaKTrA;bx0K?w5cjZv!$->eqneuK=YPnI(`F~`!!(cH-NEb zhd_sK0I$3Q7;n<{0=5e*-wQa~R0}NL3mEV%V4_*}Eg=0{z&?RVrq6ePJpyaK1H{c< zffe5YMt={;HkIE427eC-?*rtR%zc3U0_z2)nczPGYxejcLA6VT)bzzh@r z0g&_qV3WX1({MjvgFxASK%vqy{s3T>nRNh=d;qXbpv0v92-qyJ=tn@A*(xyi zM?jaK0CUX3p8y?x0_+l)XVQKKY!_JmGvGW^EwK1!z<^%>7no(g0MdT}>=P(AeSQV( z5m@spV4>M7u;N$1=-&Vro66q+gMSM)SRM|Y5nQx9Gem31uE$jIXUS#<%)bphK1Jd+v* zY!+CgLM%611?GkUUFrdhSy&Iyp&nqDz)F)=AFy3ud40eQrdnWeeZYVuz$&vW36P!y z*e7ta=@S9$5m*xeRGPg4Dxx)kxBYN$j zMCTkv^qpoMAb6LFG(he)amhXAQOUig;o->NOrGREvr%%tX?_H<&dicLV75peG^s}- z51DzA^=7N&Vbif8@`za|*hAF3Sg_5l>$gk0c;a^lYbc-uvuVH z3&1wBRbXxlK$oKd@0f*013DZH*d?&Tq_qTW7g*jB@UE#ASlkjYpcP=JS=NeHc;9>~ z`M~sPjeKZUN~+CX$w%h&Hps`O5;23@aA-J{LwA|XRKR|L^#Z$1@EE|_R6x!#fKSaj zfpNzGnzRLcZsKhLNo@g}1imy4+W|HRl(hqVZ8i$zwga?p57=vFwFe}(2W%7g&ZHg- z*etN3e)=jM*cy=6I3>&EDf_hLAb^1f-6sM9kn5hz_4fbl7B`2(M@El+-uD zPDqj&FNv6Sl0!`7B;-&NmmFpul{7F7Peu+md6FZ{M#+(;d1s`dnI&mtwn&aLscA@K zGf&dQY?U-M9Zx};nT3*MvqRF{q@AkzoMp2G}Ri z+VtrH*dwr}3n10(6cQ4rtO1aDs_<10;0=Y!c{X8g>V45Gd;oIN59z$n6ejp8-fSvoZk5836vV zA#E2@djK{IEb0O1Vzvs*?E&c06A(2EdjdN21nd&%X3}DS?E=eVfDBVDus8-7&Cv%sQ3fYD~Fz}!KAE`tGM&BDQe4ub)^1jd`R(*fHBmY)td+f)lI zJ{>S%2wV2{9>GXQb3S75~%fYCz%*`{(RVDL~t_)I{K$vhLV zUtqn!G!q;KSbHWQXBZ&QtP>bF4A5jaV1|hg2P6##Y!aAh8jb*L5GWe~C^Q=daz_B# zX98xKS($+3Ou#mQ5|cU-uvuWyNI;p{Dlm5>pvx%09J6o~pu;G@E`fO_?JU4{f#qib z&f{N`11vrZFkm#`0<&y1Abm7opFp|kGX}6nV9gl7LbF$3#TdZov4D$BrV2N2LFm61cNfzJ={(rB4q%6QDfu*M5*?a_UCsd*v+x{1hjReC1Xh}~ zNr3GF%O?SDFx3K!CjkbW3s_~AoeM}m7qCy@X45AQ*dwqe4yZJH1y;lXqbCDao65<6 z!IJ^uY`_|mnGM)4uwLK}6PyBAn+?dB0=Uzx6BsuI&?E1nxBrrvf$z zluZTPXEqAtP6f1|23TiiO#>uP18fs`(4^)9HVZ7u1*|t)1?J`gy5s>KF$?nm9r6IX z1RgbM(*fHBmQM#fW~v1iPX`Q`0eHeJn*m6l0oW(-l zX8|?{l+6OXW;P1s&H}VA25dF6iUG;RfNcVAn$!}&W`RW|fNf^0z}yl*mr}qxW??Cy zLn&aFzz&mE2G}mJybSQJsTNpV1{g3Ku+uD?4M?92*eCFT=`#ngM_|nyK(*N`uwo8i z^jyHlrgAP|@LWK69$=TroCnx1uwG!d3C;(sod?L75BSuq6Bsui(BwS8=O%t0An827 zCV?+a!}9?f1j^0_d~G%g`e*s{xnRNjm`2xT;f$vP}g@DZhi!KE0Gg}4bUI^$? z4*0<=EC+Nb2ka6!VA2)5H{e{Sy zi%1eQdoLo%ii-fFF9y^xl@|jBUknIe0tlPTO91-?)(g}(!9{?zmjH4W0U~Cdz_>+# zCYJ&ZHStRUNtXgP2{bSbF9U24D7y@BgxM&Ndl{hpVn9PPYcU{sF<_g(Q6_Z>V6(uY zC4eSotH9hPfG(EypuNew8n9nry})rMcnx6f)qtF9 z03FRbfpOOWnk)mHVB*UFNy`A61Ui|9*8(;OlwAur*=!WZy%x~k1EiT*9w6BRY!f)u zq+SQuEU@T0Ko_%BVD5E*F3SN?vv4_}!*akbfo>-4dcbyp<<|o;Otrw`>j47{pr=`8 z0OPoS6SvjVV3V9g3ZAG23r#R|aam4JSxawTB!N*Fu-J10QL*47Z_xMHvraF z0CH{soNm?$jJpBQ0&XK=^*Z zB9nPPV86h6fy+#A9boPKfSh%JC1#z#xOIRg4*;$(@dp4&4*)g^EHw=u1Z)r}dk}E7 z*(i|vAfWw2fMsUZLxALm0NVsSle!+TSzyt6z;d%yVD5TAmxlqyEPNQy;bFioft4oh z5x{nV<&OYvFx3K!9{~*509a*~Z2+Wi0PGXE+4Ol7ut#9cqku}YS761XfYE;ktTvT@ z2Mqo@Ap96$jmdlruwP)kz#S&|IAHB#fSktxcbatq;~obzc>-{^i9Z2IdIGRX;9k@4 zNx%kyvL^xenT-OuPXgLM1z2ZhJq1X93b0M!L6iD4V6(uYrvdBDR)M)s1G;PkJYp7Z z1a#O4*d_3&NqYvcU10e$fX7U=z~W~B1D*vuVU|4$NPiZvPv9xj=Q+S0fi=$oHk!Qx zE1m<4-UN8oRBi$c-UJ9g57=Zfp9kz0STFE`3BCYW`#d1$1;7@wPGH;%fF_#(FPZpe zK+!!3Xf0%cnOubGVkxmy73Uj%G5vt9%wzX;eS@TN(939wmU(My1BW~;#5 zmjGQ}2E1byz6|K_GGLd$4wLo@V7tKbR{-ytYJtVC00z7Y*lCu%3P^tyuutFv)8{q7 z9)UHl0jkYjffcU-M!ydD*i^m_82maQycMv^WNroQ7g#T_+XUYLtli2z@zgiCC;rr| z6BzdfDVn@ViqB2_O+eC{fK38lnuc!yHVBlx1^C)*6v%xG(0&_WubH(Ckh~4BP2f9| z`Zi#*z@oPS`^;8>xo-oyyaV{bEPRLC{QYK!wSo}D-YX=;Ua>bp>=lIAn;3Ot?-A=m?NxLrZ535T(dts#Qf<|&7Ohp)>hyoU z?)@Ce*O%|_pND5YpYuHL&p79N&bjBFbL3R}n&cmoLgN3gzq$Ffe+U0Z{-)kH{vG^W zX4N;$^)vUBa7p7^k^r+&Nuc>diQB}UC*gXAl61!JI})yEC`oU2lbBB5(V@@_bm%z~ ze*qDE0dZU+lL@(q*e5aOA|i`9B9V9zQS1^T#EiIv2)l$hBaz({x{Np>G2=2K)SQ+` zx{Qdvg2-j2TtSq)g19D;+eBVPoRe676_M9mmY97N(eQgjK9ll2qU!gE2NDHL%r(Sy ziLKWVh0HyPmDdn)KOl;jjXxlo{D5%(h$v=ae?&Z#*dtNG_+3YA{}GXJ9Z|~cmgsaH z5qbkr#>C%11m8d$mndgKZX)(cjJb&@Z;nVL-b57p2@z>V{DcVm32{cEqABz<;)KME zpApgKv_#U+i0E60DrU+pM9Eu-YZBE=|uY_irSzW`vTq=0hdzOrhUN+MDr8;>>9! z9Zac*BpuBZ5>xV_mh~ZB?QA0d(6UM_{{zw0T$Y&qhnDqEM0b<&C!*?~hzAlqP0U}2 z>k?c4Ld2VU5-a~g#QlxvV>bScX!1A0{SP9+#QuYLD6vPPzw!GQvHc%J!oP?CX17GA ze-WXN5Q9woBSi2c#Bqrs%R>U#^h_@w6Tk_?@*@EqmnR0W-TjyxVMh2dJIoJpMq-pH z?Th-(t#O=KYAoW$}##6)vhVs;>+p&RkMNpT~p zx)Bc~JSHXxab03-5MqkCC$TaJ5tj}z&1_7EXp#=$4o1u{vB8Lk5_=?O8Nc+1?ZJqI z^oTiTw?wD(h|mm(dAz*{5u5>WTw;L?G|7f=XGd%`vDpz1CH6>cGk!S` z+p{AQav*k?-4dO0AVNbCFPr#KL~tnLxWua_Bqw5@#F(6j*US-##GHs?xe&X}h+K%U zT!=FgZ(qGWEwHHrNuG7sXM#PU3d1Lm^C>^z8u zc@YOqN?t_Oyod)9hfGX3;=07vaKsUFPhw>_A}$}|sM(kg(Ig+jogZ=B#O6mll-MKj zf$=MV*q$GePyq3v*)7qj03x&?;$stE5D{Duaa`h46H*AVPhw0V#AoJ+L}DRCvBHSc zW<+5`SYgB&i7!l{B8U?bGm0S2n9~wTMG(y&PgmUhWOT8 zmY7`((Xcq;JCjlzQMEYYfy6}Yi0@c`lfD8ST<3gG&M%+@GE{LH;5LRLm0;wmBn%*Kj{ zCKVCxN(i@!t%P_eu}31E@ry=muY^d5Mx-~pB|1eTLMtPlGx3!X!IcrmB{G?iDu{g& zW2zvsm?IL2RS?ChB0|iFs)(?vh%*w|O`&Rt6B0A3Awtb*iKJ?X=<0}EW=eHL$?Aw} z61h!e4a7N#k?aQAqts$5-V#V;%Xy` zn2og&O==_Dbr8i&Y#qcyi9He}j9*>E_Bx1!x`LKLbGHBhE-vG=&-hu1joff`~EqBvv*- z#5G0KHyfKGnlweYn;{yS*k*`_5_=>X8^7j=?adGg%@Iw_Zi!CK5uq&*%}sm@L~skl zafy~Dq$OgX#F&n72=FUJ5#7N;)KME)`&QBS|X`6BDxKt zqnXkMQL+u)5NqxT$k9|4iRte zNvv##h-;7NV>Y%&G-;1;#~~6-Y#idD#2$(M#;*fndmJL617d*LEzzk1BD5o7kcsbz z2=0hDE-}P}bVBTt7}E(c%p8$O?1U)R88O0)=!^*Kj5s4P$`tB?I3Y2k3u25pEs@j( z5#1Fr&P?fwDA^TpO=7%>?1nfevAi2%qPZ+FyBnfmcf|81r8}Z(cfi z^GtkiL~w7!aft;cqz_`B#F##aMdpY^Vjo1YzK9evqAwz>FXD{EQd1}aaYAB70%Ey2 zEs>Ofi0+3lW=cOq$$p4y601yPf5bV7<^2(>&1H$%{Sgfl5o=9KBBE*{;(^3^6EgsD zU1IA1#71*ZV&wot+(5);vvDAz$v}jA5Mrx|9fWu&u}5N?@f(cTJ_wO87_r0bmgqDX z5jq6%vWXvp2p)nsF7c`f8H(5^F=i;@HFHEFaVVnLFvM;%Vi+Q97~+h?8>Y~3#0iNR z!x4MTX^Euai0BcBy=KY?M9C3|YZCiSwzunCAW5?`1? z6A>pQW=uq!F{dSxCI)2M8$F2+%cX5v1!j84Q}g_p(d5SbWwjh8WkEpwoLl+7Crl;x z89X3jAaDB9gXCXk+S|$#5ajP(&HKhe&E*9F(^TACni3G~UogxpTo91QE5bhw2+keK zUt8l(qb955z){17Mw52HW!RgtB;ZH?y#+T0j1DwS<^(ix@2N`rdw1^$nB~7We11Tn zU#6`5)inN~TJpBWbVDt*Q^gtL`wSa7lzMtKRb#FEn>5>dVL?DnKX+Z;lABQ#*Z1@G zpzdP2w5y$A?m&r538Q+C88Eo7%hwcv2fTslhsF;bHlQyrsN1_>Nx<*^?spSit}LlN zEE=fNg%Y$1_$f8h`*-$y%M?E-;jvQ}FM3;Evo;{u-F436Y1+?*2(sHwJEx)}r zO(mleM)jeVg8Ze-^r_9R@iv<&>2u#&m_nLWP25*S`8zVH&9(82_pbqZdsF(XuhL3q z_wL*gFxS6OOM>__aLGSkVBzd$=$AA+e&ncxk!>&XpP{v#%c#CgPT9hjY%~3(SG*b! zoO9}B{?ncVi}X@Xo5a zmsue}ey&Vfiiuu#>01WL4PGRuMbRJ`Ic)IYF~fO#qIVN)+#m3UpZ|??d)Ms`c+1c2 z4OG1c{7jC60R`O|3;HoK9xuaxZQrZDfza&`Ek7*b=Uaat@2zw=ps1hwScD%dz}aSd z>%JGzH^A*(R>^jI|2`fN9^`(Rckrdx^8MxQuts(1w|NbpR;#ze@naJ-8Xw}Eg%~qN zqlv$2+I4TMPXi{TY3gIsW=cSy|LRb)?z4b;?gM>T8>uVmly6Ur8}FyTeVsgjH2m?> zne%5@io^*t^Vs<}nYcI4*?{8iObutyP0D=1+hjAS|BD{4-vCydxws%8&S!l4>E2f7 z0~+3buI`8WkC(h%L;Uh9EMyoSrq+bv1Rq= zF{fLX)jCbiur91j{2#;9{G=IXAGFVlL>f$FJ-(z<3*2 z02gUpZ=5PF2$ihsYh5ASPg*p7`dL?){4MJett*1NW8FZUI#3kuId5qkg4FzC@S6=B zYF%;MKh_PysWT-Y9;g0{uyG~H_pojxPOH8YoCf{OwsED&>rDn4jC1sQAXQif+8{L; z=h;TelJ~a*bAc^f4tIdOeimA%x4gY)-6HGC<36x%v31%(?f&dau`W{M?_(Rd#L6h# zr*;JEO-fq$iV&)Ol%HkRRU+^F{Se-?i`hq*`G8#Z$dM%{%_} zRwhY4;$1sz!>euKYPi>|TVtL6GDmOg^adxD)u2qUZoQ4u>zw1Q+hAQSTntXTDQ|u9 zcza!&iSl;oHrWd6;3BQtVhh*BO$Uu!y&_5t$G{Bhw%NFPOwR=UY`3mH`B`4WLfWzo zwEVNJeA&u|OwR{3@~U->$Y--l@|tyx6=U6QoHkPv$ZXx~)-}Z~vB#7*tZRmwFQ@hY zrj^af&#{4ftZRWY*1ct2OWYLe_FC5pmtx&M>ssTMS-0Q1Hn?dx9sSc7aFMov^N}rZtlv?P|()13&9NvaUPM-|JZa+WnO8 z0RcAf6YF~70AL~xrI8A#yN&2~*wtrvHJ5~yi zeqjqIkZ)mE;Th}t;q>wr{b;{eBmJQ|t{~~xIQ1(LYS_4MY}^2x-l1W*o>ymN(t^3WoDY!)Iez$Ha&ilp$(udYfBR|l_dH%3+I&zSef8w-_byyv2 z-QPBDCT@sz&P(fN;f7kL7uadL&xT>vJ+f{NZn$;&gWbe=Tyv2ltn@>w;dwC9x&Z5R zNFHUK-gc)(7Qkrhf~;GJ8)KdGHoQf+vDO9KxW%|}&g(DJTbY7PvVj?_TY?*Jo%1@q zrML;!>D7Ab%rcm0T_&6sWI0T-E{ly@fqUM%ta?p@3LBVgWr%evanAV2X5A`WvW?4b z-3z!W*5$BnHEybPI&V;R4NS8x%*J`vBBxuK+sbvg8P?^oZar?Mb$PAZfSYAqxOE$G zv#rZ#-6q@|>+)N-88}g1iZtC)yDHYC-89s_-@>!*ngJWl?sJ+EtO-TSz6xG2(Q)_p*J0(t%Dg^}w2 z2`Fqk*aD}{dpmv0!J?nGq^j@}&~B-pcGi7LUb~=v+FN&$ zymmqT#98+l`FwVBcEEYh|4t$EBdd^hw1KC|>)=$Cw3Bt8lTTuatCM!N?hEo`?V9Og z-IqAMlcfe}SL@D@Z*1fA>Ps!iSuOuiGIgOlQmf`G&|yubLDao>>F;aV=yx^Kznpy5WO1FbtxKBw2Q{hjw?eupf9Y(lDcWU7Z3;6B@~Dd|w_ zE|UMsZqH%XUBaEiH6tBv-DUFUZQKa!uHf_sVp@=nl%svuRrnp*igc6>{GR+~TX-~1 zYvvlfWZhUB_XAFsGjv|B_j4-lN6>B;OFG`hT_>-SEqs%F zxaRWnybb(`d;#kwTlX{WIqNh|l)VMoobixs>$^=}FA7W`ood}3^7U~1cwEzM;k!)L zNA@Gtn?bcC_duUoi7*SNz48~(r<>e78+V_4Im!+qU100`mHdko7)-hl$3NEt(3eyF zEcKRU{r|><-bXx~bh!=uo&0C<}sN_xZp8dA4zWKbSn)x|^(-P~OPlR>vSf_73&R_38Xv=cZ*k#}l zWe(XmE*iTUGcXV14&zi!FzzSv`Z?;0^SJb)r?0F$=98`rxMk#z5qR7>4Ymux{2giB z`_^T|%_Og%4@k8ZGU2M&z2rmdGUKAH`xvJcmjzeax&HT=4a|xxOW+9tPFoj((}6=j zUyw5C%Eqq&)_rMRcAP#h^mE3#95{V8=;y3;p*Wqi=rI13v+LwUu4n1=qj#n<>B_~g zHr9P@T^O#Jb>CQ*8#j!24yUefaaz@Ra4(SRXnFysCC-b}`J>zwoYs~{`+9FOI>df& zWjwds7>B`S9?V5`F(K;Oyw0r4LeBG8Uh|}B2blAOV;|k&Q_C5V*`!ne(%&*s- zwf%82*Hm)2_9n`T! zS1Hv7_cOe0$ob=#bd}fVuNsjIuz`Ai$n&b1A2*J=U6Hs+I30w7akS%#!l@A*gfiK( z6>(Y+xhyy)U6uIN&pQ3}NOdL}caMr$enzvEm63PV8b3K~;VQUWI33kOaca0K?gN~T zYI$tgYPjEVI;w@+xav4{PzSX_Hm(M)k99?YXrF0UO@8&WvZxKLh11~D(XY65wQ&Qj z(}fEyNgZ4)Yeq-J(m1WSx;S0+mW!})F*tQb4OXzOo<4uo8_6gniK{-p`dL@e1~$N{ zunwou)-@!rvT{{y*+%45R<5dbjma+r{W$ODZNl^(Ijw(PztNI3MT{cVp;OmtG`|_Y zMq5|Qy5_jL>5=?6FZXSM(+j}#qiaMe+mc@et*dKYE8HEnp$^4*0kHS`Wost%mNxw~ zK&mrsaI*>2A-0h%97}$V1^_>LYcP|pw)~oJt$Z3Bnn)EOQ9 z##%RmygDP7gd=f{vWV%u}+^QYD7oGrPd{rR|n;m<49an_@(+{NIffT;8ZJhq+4kN zr;#5=pbku{teZ~09tRa2gkG?22KkCO9fVfnSaGhIw7a}+T?%=1MtjR1Tj3HLr#)k@jay1yA7a`I z-nMbe$ZIocFL+09<<*ibXF}Ua@?9K>YX!g5i1va*HqMY&2Q|8n;Iyh&l2?Tq-N$U) zD)OpN?tNR|3*=Rw2J#0s&a>J|jnEIRTti-sXyAQ}QzL7w)4)4v-8%BBPy_F@ExX>v zX^?$k<2G2QF?QCvjpQ5Z6_^@OUn5CeoA_1Keqw!N-DaGw4d~}v>$c$3L5+#?w!*FC zbtKf7xM<^EB(Ec(+$HO_**J}p%lg~aq^|A!QlR7&8@Pk~Njqq+TK5u8jcA;FZ{5q} zRaWkrb+6bsjh!E?d)3Ct{b=1ztvW4<2Gn(=R`qM-)rbbvPd0EDc{L*Uvvs@4YxQf8 z-NI=cy>6Wb*&XZNAg?wwp6=n)#+&5ThDQVHS6ks8@@hoxfpu?@S0fr^zu5}+l2?Tq zP!DZ|`>fM=`pdfgSMTO)@8KrI8Kddfa+cIB(C@Qr8eZUSoZ;W9pJWV`)9TCgq0ehA=Z6pod#Yu>prqh zgDkssACp(ZJ4tg`_X&A5EEj6sr{vYJ#+Y7mul8Lh`K8sW0hJ4>)%uxr8c=zxJ4IfN zXh7w&6`m%qM&$Ba_c?hrqCr-`x-ZD94UMOQw!SZQ{-+8xpo-YQGvrmFTv6-Jl2@Dt zSuyLrvT<_7tvg3v4Qt?)u6^z9+9ZZ7yB)Ao0GbPH}Qot^0wz8rCMPX5EkEJu0kiQ{BqzUzd0q>Luh&-v>rVB19&HPan}Jd@4!KL7Y>2`a&c+U z(`aR(oEdOGu)e1**?1PFH}r%4kO%`{APj=RphJLmdF{H|RnKv>)H7%LME(Rmg(CE| zDBNdReg$1`&}D<)L0{`bK;PtdFufICWYxH~k*N<2pdmDZYET_&z^fF{iH=TybcICU zko1Kp4)ld567ZM#JJK(B{IVT32yRFR!Jt=pXMpD*BMc^f5DbB#&>#9hUl;&AVIb&at{e0Mov@wOO8A1d z&cIpF^{e%4-8nE17Q$j!0!v{Ttb|pt2HqgPE)`XSNlZTvlR+=F9u4E*HZgZVm#|y1 z>$`D&5Cks0W!s;O-lp9VIzeaX0(wM9Pv+>M8$D!m5cFWpA<%;}@4->f12cL)=6%rf zFM8fZ&$sA#7CpYAzZI<4uzv)ffSw-v06v5h9)5icdT;wNcn=Q45h%tc@4icwC(Qw&phr#g7>OPm`3^3@WzZ8I`>7)jORV?O>&dZ~;AMCPc7mQ9^X%r=>+lBX zv9Z3;2lTj@9uMmUJ)sBGgZj__%G0>+VOE4n5D5{WdzjN$vom29%!UQ92o^&KW%aOD z7T^IbkN1hJ=a|R{!7z&@)Dv0rVIj;0J$SVoR>BNe1qRl_Tv!bAU=6$gQ(!gBgsHFy z^Z?dU&_h?lVHDiZDW=ZYbpCl4E`UxGZ-UNKbw;K$HJ$z4hOgi=I0ZV@JfiAS_+uchr09rsDs0}rsB$NW4^vmyhiIKV;^wz;x z(6dZ>c1h1F#qEvzBe0C0rxy9zPzUNlNzi@o<{W(V&d-L>2pU6er~`E&1}Z~Es02|^ z1upM@QZcDukufR?)uo86dYzF9l`W^PXyYLyDg46Ihd;wqT zAaw?Gll>qdJC@+F}Zlz}kF19>4F z@BKKA#aE!)$KSx;unsoBKkzR+0zHfF2l~%J zx?8*rcEDEH2`|Dc@G5MAm*9E$gFT}n?dXf&X(*}l&~OGw0eBATAsawLL0|-FdC<*M z-51q;P~GFyJWUcD7*)|;B|NdK7}SM&vOjhOppb#LI`Ao?2rROAt&U5JdhW{K{unm z1KlCJsE1K5k+}^15CDPj6}$(!W2qaI$3b^K-v!<6)cxFbpnJU=K(BW#4!^Kr+)VGI zgZtrIrf?BGhimnf_X3>sx9Ex zB3KMdVI{1B7ho-{gY~clw!(|B4Yn_@<<8|9O|AkgWK`%&x4wSrl15FobS=<56Wt@J z0tbkD2M)p^D1g(wlHKI5vHq@tZihZ%v0S9*;2Zb^j=+6Z&qcTlbC{l|(W84F`rcC? zYC%n?3;I%59)>Vq5Ao>MLnmkn86gvFprTFC4cbCG$OCUs?k(5@hghcv;axZkN8mkp zi%##;t%MI)T74gmVo8=#X&VZ)hL%tPhT-}`7w8JQ?%EnQ(@=Nl2<_o0u^+%OI0#4J z5FCfYaFj-mfv(k+g;-oWjh=2)ri*oYe5n8xoxtfD+9~)5K7~)gfZ0 zY2TGVrYH1*j?e;X!e|1YhnX-LX25uu1s)g!$uI$C!(5mGb6_frg^4f?#=&%$1W7P} z`X|tti9y*ZL}n^XgXu8C#0R)bcm|Sf4$YuC=;mS@Hs1!&Lx3$n&;3<~D$tBIt>^oS zLUA}mJG$I*33Q3&BIx?SW%wF&p+VpIb$#Fpd=KBkRXDG68(nqKb)D}(7mO}|E*yLg z*H{2&r8#MOHtVZw!BwyVmV=&x*W-3M$rlGb`>hAce}Hg0tq0gV_&15sLu%td51~y7 zX2+R2OD7p7+4BR!0Ct{9Los>p#87Gk2ns+R2!+h>90Ucj{as}KrMG{N=L4!bFdNQekA<~&O$l}0xk953^->xgz19X|1*(sdgCa-rg(IYocn|A;|iOrol&y%{edXnX5(9kF4q&u!QZW52l4s8(OgHn?oEp z+q@ZhjTdKH`2^?(-iBx=Z3ngQYp?Stlb=T3r-FCkJ<$C)r;xL2I%(QU9Cw^m?d%z8 zSNXHnLND7mZF~M}8##rXG;M?b%Q>BK(zN9qr-e-dZZ5luK`C9^DE)ZCm)EL`1qC_< z(~k1A`Hxv!pMhf2`n36{)!}q*DD6K!+4x_98dT1FCr#T(+Wh}DzcCA39(uEo-g`XG zfydeAPI{UpbMj7_wjswk4La%nib*?C3bJb;x~IkmH@ysrboh-(dRhvGino+H&4}u_t=#6j0hm-~IThT1j`f3Tvo% zuk7o}{~FL~+DaG&rC>9=;q%Z7Izl?=06H1bNy!6$-wBE?LS%#IK$jwQ2~y{qo2Y*S ztcP{b71n~z9XUnF>{>~tHyBvK-#v8a$~TMbOh^WuD(Hi80O$g88xxY%UB6rm+0sxP zw7B^pFJy&`kOeYBCZ*s0S^;>0B1_ z&PrDK{?Hfny`e4GKN|8#Hv+oRzIWqyChY`q&=ER7duRs=)Yj8HXIiP8Gp!gWuQ&}T zO?Lrjo)hn+@}55Yiicj%4OFlv^nkRTQDy4A3JIqH#W)Q(sXDLu8o*Ah;?x<{qYm_g z1Z{r}phVEB8V*My;CUDY6G6um9kR!RcIB}!5=MYxlqyE)7@MX# zYSh8uX~9lmHJDn!7w=R!+0IkrikS{mV1~_4C7lLKVHqre#jpq#!U8Q(+5w{(3oI(6 zc`B3wj|*Ant$_S;Q0#wIj++mv&)E#^$ZJ!`tp@LxlC&LAzzd*M+e!I>paM!ag1#w- zfgk+E^m(`ibKqzA0#3rG@CkejAHj$40UU>8utkTQ&1AHVkCGmQt)^P2yQ60t*%#qm zI1ESNkj=kGx)t7s6E;0X`Wc*t&tWiV-Z}Ulu7LXaEqnuC!&h(?zJxR299Agf@g5_z zNiV}CxCj^EJGcrz!A-aZ*Wm~F5wy@Z;7|As9>9IL2Y2B%XqoT8FYqg9-tX`b{(!rB zszL$(!awjgJOY>5n$z9R6Tpi1hkT&>1-gup2XtpEhA4euI|%Q9F3`UQ`X1Z~+Cf{0 zg%%J4b)gQ_hN@5rDndCZ3#Fk96o&wA*KsJL7tNR7GR4xwIq_;(d8b}q3_Fcv6f+~C0z^Q0r~;KC8md7pr~%cXCTyl$bJC{J z1R6kns0R(9F*E|jG_$lJZ4IrUrSMqMk+cKEL3>yQ^=aS;bSB>m2EY*L34@^<^o8y) z2oj+mbOFUHPBC3=-bLC26t5A`ht#7W%}`)GBtTlH26}^n6(f{ajOID<{mCoN>8R$b zGny|y5aiUbI;cEfp*`N~C?lCr!4wIGszoR9X`YU&y=7849K)>gF*JrirW}1I;a~9(vI~gXyXc!7k|Av!So5MhBQEiL@^?f49 zje!X;9+E(9js?wAIiYx^Dxai|pI~8bJn^DukX-KhZKx;-`70Nl~)R=~c*47fx+R)M~MyZB` zQ*ORi|Ko`#@{E`NsMKjln_HV#<&=K`w!k`A4GmxotOf0r8(}?cfK9L&UV)dv^CG|W zA@UNbj`%xBx50MM0l7BRfLEE`3A^BkJn8GO8+5$Y^nTa}dtnc}3Hp>%{cn*!0B?ih zn*DX$<1gaGgd9l{@( z_dGJik{5J*!j;&zoQP#Q$3}h5__5Xs#7rsmDi4?2}$+( z8hj5iX$os8RM~aBVt#}l;K|0EMxFUFwhq+IZzvPN{YxC;w!soh+@> zf*jNKSA)(BXO*fl?WK-)(sb52t6Fi|qn-Iq>I}rRoqN(nr~}USFT;ehVYs_dC`Gb&#w%CUqR0+bOk-Ta32yO60X7( zI0>J^C-5#k1~55M$Sn;vId$5KXLG)^y<;AX-M&}MSxCzGEFQ(!tw zgA{P)FC_2OF^jy)&Vkvm0OrA5m=7nk|7$|$FdJbp`9+{LAlAT2SPm<|zzeVnR)e;; zR<#CNBxsrs@1j= z#=+~LdGca6>;iT2E!Ynq!256r-i71Pgu0KC9)tI^{g04243a0{J2(el!dLJ$oQ2cy z1)PHN@EOQ`4vJO&jKwLdd8$iZ&PnCJg>SU|l{pWW;UZiBCr}-bmvbt;WZfOoEiBD1 zq(8tt(60AAXrA0PxD8Rn-6GZX0r{WcCfv}ryAD5s&Rd9>uWIYLUHFcZA!S^K{}<~>@ovOxU1KF$n4)C440npVCcnk zPtca^0hw`p33Fv6RduR56Zy?fwVp>RUXaOf&>3|WX6q2CVmd>=1tGYs5JO%MeddBt z$N||w@fn$?W|Xf^UY}a}bdt}B4+E9gvnP2$^YR4rz9Ms>bzPu9mY1>3^?6Puk@z$nq8=tOTn@eLKYTL3jt=fY)FvbOL>L zwS`z{0WqL0SO;oDRj33Np&XQjDC*X8qk5!M?eNHh#}!FN_qxl1p8C@>pL%k-H0UYn z5};*K0ePh&O(ov4P8lao<%`j%6Yr$zL~0BtC~1Q#GgFT;X~k*l)q)zZnYB^Vlq>D- z>Z!wIZRi0yJZX$|A>Ro)!x*N!l6HgcpdsuW%6c;0l|D^+!bcJlkDCaU$WI_04?0wi zBOL+5fWhbS?iWLu7y^S}APj&+=mWjsDE)nfhWeB52MN#@HsJJmJed4&7zHC?G>n0< zkVKaEyyOe?R(R89@%flW+rfQ?X-`7xjem7KN8+VprIquN10PG;l)JyP{D(_27mMJH++ zINO=t1~0-^kQ<`;pfiu9unZ=H&O&t6`6c4sB(M6jQEygA2O5Myq<`rzUb@NX`7M9& z16}2OM8HKD2>-%ApzZc2{0_gtKG+NI(7+p{yI~i+20P(Zcm-aEJ@6*H1;4^A_!(|$ zFx`Obpaw6%cW@rQg@dpk4#3;+4!jHRLp}O>ob(VJhGTFP-h(3`_YHgv=in@S4j;i8 z_yjy3^Xo(S08W5regSJ(s?(&W;4?T0pMvJAk}u&aXhobl@&oy6plz?tN0443{T{Bu z6}W6u#s5hDCmk?#wznR%I_|?Sa1ZXn9k>nJJsln}{SY+JwAznS*&lZLZ_>YD2xzws zU{huRJ^7Xa^r&7i=xMl2kTH<$A3{b4Nd4p@uR*B6sK@5iF%2+1R#y!4Xk8)=<|b8V z^@v@5$P0SZE*x~CsOJLqDxu$%dp2pgz=tGN9)It5ZgMllB<3qvr_AfkzJy)__V7 z0h-o9B8oH;^nhV`(8GpW6VAhj)tIgfdK$8d%`4qbOl{IyPzUNl4D^P0Xa=pJIW!IA z4sByHjX>M8mq{PV)voqTwgWxyIB3K4XVTsKvT?H?|JD?N1wWJ#C z`fNHteiLl4^E9^ClV1lLLFYI6kljpvCGovpOvFazeoEZB`7NIDx5 zp$m+GE%>3NyGUPyov;;Ng%{x!co|-Tp2Q6X7wlkqJ3L}?n~q5eRDfnERgj!2p@-gE z2C8%zc}=Uc-9a688rRJeb@ol1>eypbHS(6t?^2@NG%ELmN=cSzIsDFG;(R63>5%W}+t(pOdQa zY0^{h8T4klBXofFa1y7=m%=CHRk<4Zn7q@-r#7!?q4>0^ZvLyIUA*%+IeIei3>7#H zX`VXZRHErb{U2a{T11)-mEEQHPOt3#GcYU@dtjzJw_4SHcrnG_uSZlwg$PdWcw_ah z8t$<03<2JUi<0ZaW$rmX)2WR_REekFA$H~+~0 z&En*B`@BmKRWYIp|Kr14dd;09Ncp)zE7rMlm{Yagf#EACk%b1#jenBLroU3j+qa4l z(G0~PbGNoT%71r|DO$%JWv;}zEBXHxWY*PkM^%29&eu@lACr;;>+ESvu}FGck#mY* zz9Ca#mCghD-P;%u5$G2g5fvT5`E#CNGrtb2xe^h1iC8P|4FgjnS_hlML{!#) zljIwD^3L*oj-Hu4#FZMMC)NuxCwIBe+iib)_1md)wgj8Zb*cS`t^N7akG>c;;&EN7im&JG_8V>>K>bLHbjT z`1lW_TBY}viPjeSz((v1JAVGuseixsuD}WrkyUxSnz=xG{LJH-3^ zTXM5Kk1k#4b}5cIRU)D)v0>i}F*_;i|9Oa+T+f{|u%hc?h*{W(VG?8(mk!Elvek39 z@t^CP2&~}p#f61GyGCE%L)|nRoZWmGNrc`y=UKv~NGUp508X?~V!&3iYkl-Xn_Es{34)szgLaRMVao7ivzadfUkr4cy^Q zo(@OkG!ac`pdP81!$YPgi+c zs1y-d$#p!J*+4|)XVp>3^{lcLTuZ~uZPotl73OS$?O~>7Lzd&iFtckjn>LyQ&Gj%d zT+Xg`f8WLl^Y`tWIRm5EGril1+;3s#mxk^J{=vCT)kf~>Y1V;LYJVQn>Sg+JCXa7P zhfQAE@at`*KV?bnaB#LuYW>55OxDKUwaXE}X;|aV9u)pl1%;ct^9c(JH?7Rmk0wP`NLxuflIBkY+6sEV$f`OPFYEeooH6KzyJwWO=OyCyw!bO z*!0kn|5Vu2Zb5$oiun5b@n7Es?HIqdw?~mk2F;@iAL&{Mqi-Ht(`W>3AMp z#2i)~|KDrJF3jWgZ@RQ}x3UWr=I>jm$4mS;*sfaBqm?_+20dQb$7{rQzzg$dgckgj zK0W(j*SEO2wA{P@RC6(U7q2FIW(nVi&*qkQrhHdr$5fV)JzJmTDJ9G&t%=w`gbv%) z{_4`8&WhH9iHPRoiQ~(wC04XyJKZQ@Hl$<4-Y;QVG0m%dqM!e|a^`)e!?&079ZP?h zd2{uouV?5;sk0WA(s>z#M(N{C(?SkM8D1 zMa`+CqOP?S%%nKFxub&lxg+VD70j+UcRy!0b-ZcT!JQcX>}obgnv)&=tD30)QNq_y zl>e$IGrc2=_w2f#(#19%-4#u>PVW9s4nn^`b4S{DcET|vb#K&eL|_J9t|(f%L1Z}FdbD*k><+q{YfgKKyd^EYL~=M%wQgybt(H#J}V(ovmk zau%#px7Vwf3f)b>8vwnO2>WmzI=P=rz`23#SjSar4s#!^-|L;}JCrpQ@ zujV^h8L+?R_DVrReh8%1DDSf5t+t{&9WG}Bj$BLGo;_FN-%|tX*g2J3eDc=DC2vkh zofBKlv{Ko=L~urtylKbefwzN;eV!UI&d!+~_)22Wkm^aPbLLhvYbYDOmI$4Ip0p}*C=wuH%C(E+^S~s_u$0duez`H z-Z}qHpQS*K-%=w&O>7SiB&DjG!32iaB9K#_5WaGb!x=&7+(k5 zd>&oATA81lv8{EW;t=phjH%g^Z!|&1GuNFfprR|A8P<~?Tkn6rp4rmVog6-?k?&;l ze34tNPgPrg$U7Fj--#A9GIe`VLoRdqCprfK}~%7PN8>l{Mh=3Iva?n zN(5!Inv{4N%iqMjLf})*19ck6cGG#_B_jNfS8DW}HuCt@)H$CrhZBV4eW&xZ=rd(x&(t|TGe?IJSN#F2@bwOY?niPMO|pX`=eDoBh+$x0F}vT={Wd(-(E(rbByV zl&e82liY_@>pN2Tf7{Bu*~i@?ymTAiabexe1NFE6llet|zsY>D(&t`u8x!7_{jq)< z)21&?%xPoR^=17uiuE;-VeRE_rl-5gCjd=EYE_?#HJ?)=d~I7_M6LUWcYl;MI*|wt z7mB#r))Y)&bVaxGZLZSgoBaK-YmQ&M5#BLWpZ@4;>!hIWt82~QI+QtfbkY7$%I5ur zvWnO|aO{}z|8~viYu`J3%*F&ha5I<#3GRyi4dTpQwe_^)NF@EK=E}=P%|=Z>t{DBx z#yYr1R|E~xC&jwZgc%WT=fy*52M zo3cM9wd_mPP1!_FV$O6oI}_QbI1l^#JGSl}uIz-cUMGH1_01U%Zhz$)JA5*7?JBlV zP^if|fGZ4{d-#q){r>r^Me$R;mlDO7Aq5rgVJZxuzFIxZR z^)agxmWo`>Az}cdbv_aL%sf#$XmrZ%!M%xyjHv2uu*ZsvoWShvVG=KLQuN=~O%762 zA7LMnW+gp#X~W3%J%3RneAiGF-}Er2F1lMpUnfF`)8!pr`Mu?)S)SAjJCB&7uM5{d zkDoE9U4codb8?y3OI#SLFvuO`T=wyg>}fI%Ve#tsG=m4Ry1H@!Ef1xqWmw+mwdl6% zQcGtr>j!ZeXbb`R40tf*&ug73{na!zU>S2!+ldiU-nO(lje$4QxZ&b>i|_S9{$^Q*PaQJQmV=W3SQ3>(ZL_lb*IX)lHG5%A2V zXAjr1{YUsX(|HIx{S!4lIUWA&?O;p(|5Tc%uX$xCN5&$3%_XkIMVIaC8wQ_uJagsZ zFN>G4`R)1iMCRyJ;rFg*n>BfNbZF|FFjH=ryJC2ae!c@?*2U{jZ+Y{_1n=PU9tivN zHCzl(!pluDZW%p9l=+~ zb%V`1Nt=c*9qijxsy6%RcGT)ToEv$+Byr9^iA6(A^^xut_EaE$ z1y_mTzVp9LN3M)7{>8#*dcxNRo$jt4ZVGxRvSqmGHidN0aC28x93F0ZO(p$sxGAgj z+;B5|JU#0$ik@8?ZcaXrygS^~oxo80hw3%Vi+CE9y8m;*9Nq=h^$}Ngb7+)1cX-he zzEkK-IUjbpJO7f-Q0?iq)4tQ5ZO4E32y?e&P|msYZV z^UD2W796N+7lNg98g@EQT45~JIi5w>RV=7nI`4P5C))B$XFeXwDtdP9tB0=`M`g|y zvg^aoyJ~Y*Wjzd`V;bjY!VjNs_vW!JwqwkBMy0H)^rlXcpxn-8HYdliS&NP^3ybg- z+G!!TDO5NpXEo}H9Ot_tbvOCrHl>UI@q%rE<9G|^Xwwf{HU0XQ{D&{wIgD|;Wy5Y?MPV8llPp_@surUM`QRJO6c4nbKMm; z^GL}W|ur|Zz# zX=vW=908GbGggi#R3C+vTTCbuvHng3p}Ky;H_vD9nnRP!D{96=S$z^s+}yfZ{LW8w zzNltcmkX23B_b+sCL)Z8;dLjyeArVXvyG_Ay+-Ef12C-kkA*HQexXR}oHI!#ViHH^ zABoU*$Pp7=Z_In2eQP5aQ~%mIQ??w<_D$e|nsyG07iuO>Vvi^>-q*3a8FLLx{QS?B zsR5P8n_W~M{(lX=7U4^59qsyLK3ir@kG-jN*n>y-Q#Vtj7Jv5yldPkhcmE45K*xqm z^legCwO_|>YCKO@@a-0{wN*|cLPI%pVN#)gzy9<>YQ#n6=sVKQ_?_-rqhCB@=ddEK zPc-3^S(-nH(2f!iH*W3^E5d)X5!{i`$RMI}`boYzHmu4}xxoJUcWeZGy*Av}vvg}x zJ}ENohfS&NE*WpuQP$r{eM{qJX{-r<#!}HU-!9z3cgW4{3`~D##rQTu&is}B&!fP9 zRq>3PpZqkiy8@fwKR>0MPo@7~@B38C$^C}ZlHP-=?@$+Iw{e=a^0-OonC^VoF55eez%6X&5XMN8 zW3_U&8re#hi}|{!b6pnk6csujC(jtx45k~?O#T@Rw`UBd)PeE1c?QbN862qW2a)sf zU=L%?BL0_7vx39?e8GOcj}(1)Ke-Bh{ns5XD$2+K)HWaLW_a6UYItdm89HW%%{Z~@ z-A+5MrVewbIvZ(ToW;dz-`QH2(wetf0^W5*b}nw&$9dWqgLhL+m!pGqdJq( zft2<8O?J~OkgNMI&35N`+TAW&5qG;T&8G8_bIhN!-90iioa5{93v*2GIeg#Q#k39s zXERqDnk}?B-w62Riqbjf{yApX96mR~=K8uY{n4Ive}#qWJGc%qbisS^Ag9iB>^+)i z-tmfd^_}Od<;x9qZpK{xyPLNi?}EHK&$O6J59`f0L%A2^J4q~4G;Y3cWW7SFkCNIw z{NMTVPVhxtZsgN|ueDrAI;nzO3b;PkT{^>lBK5&RMd9;UyK5KtzHn50tI+aY{#*a@ z*L`B|=he##OdCbKNrXmkyPtAa?l6A913JYmKCS=b3(WL+?gm9q5}}Wa0SkR~AN{&@ zWJuA1#aK5{A(MgMZ7kl>e38hOr zJ-)sh(P~4UIYe>+LO0{>DhThj*mpWHvuW+-n}41CPY&ND6PDTDUNdjccV{c=EbuPE z87IjZUpjTFdf*y;Vls$y9p1UW=G-gfUPrGTtTKDQt#XGHo*$#+?OiFcEdoQ1d%MED z^op*9%%Q#H+SO+FYJQ`t&XTz2$1M)m2PtMg_v*rPEb%`5k$h$U#J3;xeo;fy-W6=S z#2h9f`gI~$m&yA}FVA;p-?G>J{T5-keUyBav>55q5}x?D+pQjY%U0FR?qHK?A?G6H zmYTomXn6ajz5-yY0FSYrFBmQnPp= zpHjDo&>j8TZ8|Qz9x}L{H^RHVGcEHzm7LtE%d`&r{PysG1!b%1vo>OxN!~*3J&9m^ zCr89q`S5uCRv)HDELvvjZe&&NS!Ukdz;1G$$TCFc{bFVBn%kH8TJhGE&h%Ww)%bGD zd5({O{X^~-skd@}179~PaZ=QcIYpUsaPF%7lg_;DTa#?RXs!^Lor_q6ZA5UxDLE!` z+}dTQ3bgl@_1=&_$sDcY@SLT3U%2#%Z!mec)1&3)Z_0+3TEXHFQRw^h*MF$g=R|7R zjw?)s#ne8Dh>}Dco;G~m@r##MrbcXGPHE;G=o+)+$l}fHLe9!Pxx!4QY~EW$Xt5h! z85%YJyNoZVMueH&i`kO3jQNDX@Ob0fPTM+sxa+5F6Yr)5&N3@f=*4jxka&Cbw3un- zs-y<|#2l@;AOHBfUY>rnx}?s@v(mIu*~Tk<*F<}#%d{%Nj4q!Vk-!{{wB_6LY}jA0 za2ekmJuNbKrCCGS@SQ|xcoa#x5)*RB^l>7hTqjqWQ>xv6mG=qlZ!=Swmz~XyCKPpC1c;2sWg_5&}^2mjA3*Pp)tlZ zh^!5hWZyzUDE!Elk%X~i!tZmw_xtry@6F8b?;n4B-}igZJ@?#m&pr3tbI(0d80zZZ z0HQYP9=PS2u%*WgHqm6!c3(*ejQ!)4xWfR5MW<|j-=V!$YHVXr!XuY-9f4v)alz(Y z-3=?Lkg=Zx1j|MAf;I!jOts+Mr;PpOO0wOG;EtB6TC1qdGQf6RCFF0*(*et_2K-uT z1U_9wk$^D71A-|ze{{BLTAKYmBeo+bVIH+S+V!Ju8&3^4mgKLZG_GqCkEmBbJldCW zD}3CDx<-grC~-xJ-|+9g8Ic|DWGo4dr^-KovKT;cyJ^$M?A)=j<7FenFYy!z2*XK0 z@Z71{cX!GkJx)wDLOezZbKpjc#@}{N8Of*kG6&pN(_*gMX|>>@VVuXx;-gtXMu@p6 zu}9r`Q&Q_{x>X9-s3Y*j8DHX8(^aNy58i9yJ$<#?+s}H;?ufe3%B<$ISCj2>sE!w_ zsnK%SG4iRi68+GJBNKM65z}S=lY{r_K>&c;6az^iR9Sw^|Q>WHZJ`gD1;U{zhSV*m( z1@AW;JX-L{)O7{m1Rq#q^$I`<8wp{ZV{^89cdsb%Rr2rlL40EK>Kbt3h~~t0-ox`*2d@w7g%o-Lm1oxnnbG@N~M}lOEN*Yc~h%Y zO_ME@DmSGo6vm1`Iqrf|!6+txk*1U}n9fs)lPujqhWUqZI8oa;!OXX;lqi%a@3P%l zy3Ml8GBx$}<}KM$ExgA(F`$ypkuWN}@OsA`g{D#yLXkX4y~q~0LaXVyDOtd!Xpn09 zrcu#D}Anv%{^OtLm;_MWrC@^OrsG$!fVu|9U{fVK#gMstVdl9C}-zdx-#@;BReC5{NO zVQcC8=ASI8x2vtcMs1xbJV_3Cx}fBt=i6I;dAX}0CoP5V-wP#`QQ~<2;()}6>Mk0! zKMvoeYZM@5)?tv=Hj|P+fMFPvNwM4TzUM62?838OCJnleeq?MzKZa*g{x&##K9liH z%_RMH%#`nB3dSGbv`@XEVnejdz9Lv~D>5l$J9_+EX50~AOUETVjFrs+TOkz8+?%!arUoRKFnnW(|LB6FsHzNvHyx-TL$K4i3S$08*a~2ut9sy{S&R z)0?XAb;*=$!;*>@kQaCTl`}6xebYLs!FZ4Xy)gmQpkRLk|0>}C`#flQ9R?&U#868VdK}mESNF<^sxem8NHQLILJ_Ql(6(x?c0CDhFXqr zM8Xd$S^wW(BG)|v$4C4;afRmW0h>An3pZYi0}FP?b-c+=Lq6q3t9^2)a1UA=k|P*t z-ORVc&1ao@%Mf0kfDm-F+i<_c+ciSCCZ$NM=Q-47FBn)USDdmANPKXt(@z<^ujSY% z2y2h46uB34h^Ia6*{kiXS$K^CFQVGIYXWi2+BZGYEo<*VH4euDQTc%Q1LEU#}k*GaI2^xs`ty)gZM44NleeROSo<{*I=i zAD3@Za4{>feVF{WZc?*-_*i(8M(jfb#K=5)vk(26kSB(x?byswF>^nygBB4VivOw^ zc@*{#{rWbKg3|C@ca1{!iNUOU4IN3M}OA~8jD@e_4?ZkHEp zStW3sH{_u*t$m1zEn{=Tmyt3Fufx>Ik+nPJNS&5uCho21_oHbL>#2o$6P1EAP4Cj0 z{qIJq5k>CST4)pw0iz`M&IW^C2zJronUV3AGR^}r#ta7ms@r!3pVPkWHhswMK_7?` z=JV6L6p;@7qbBQvAXCVKXn`)IgOQ8xQ4s(%EAEli0np%{PXPzONca1~O+EeQh(iO$ z*6sn6aAWi0^B#`%2Y^G6>ZBHQy0k-8o+3L_CbYWlv`07tC1%M~EVxe%4q`WKMFT+; zLI$QBM3~O)KWXDZgooJD3w~YofSMcvVTe)eatJ!t?;-tg2*=;;9t!O4uA>}2{OX6r zh&S=Zl^(Fk7$91LihA!t!LCl<*WA~r&5AfgG0HQwbs>2k21-TODw zb;4VJ|B*nHUZbw=kD1@+!37a_?1SRjZbDY&NY9#oi8?P| z%@}tu^oL(GY8}2fqAQTvv}5r3cEGz0-bW2MbZ||T1g%Eh6kqJ|r82cX#ugY}`7FfC z>hXg{UF_gw3BeaTe8EJB1PZ;$<|Rpy8{sL!jrncH)MO49jQXVSwKnOUz(;>9cNl{Q zz{z9`IBNLl&+f(SmpT{I5Y+WEgB=8S`dd)?*Mcz>PYv~iQl7=S9E#MMHk|-RU0#c3 z=bi{H@$hK#RO*T(EDc}NjT2aLeE?yL&Mw|C(=NQDf1!~Z9bZ$klYj^Ygc~5@LQl2Y z7}1j#Fhol;zrtTr3?MXLyr$%nV2i-%L=LC4H7fYNRngf~h~QR!$i?2Y0>w4WQ&tAv zsVo9}^2*TG)XY;+NQTy_+ftQUS~6k=SKK;n(u@?4$CC}5ore-OP)=+O*gL9E8+Xav z;Drv!fYg%0DYmY?%RVpxhYB8QO3uK|twU4pv~PCoYV>Io7isXy7pfiy$fKXE6Q&6-0}*2h|8$l~CVJf{;|gWmq3f zWsl`^uAWw3JR;FA)$Lw^7NV})igeXcMyFX)fpX4(00a@*oCW%P8U5ycx?KZm92^ED z20?)NP-q2LtBMqLmU~!C*MZBlFiZ18EIUo9U8Yv6iPBP+OpqX>p{1En>~i3rLYF2^ zM|l9!|0@-KF)zi6bn2ltw0*t(eBi;R7DU;Eb-&G2`_~sWj3tjPsm%pYW@V+8&Khb)_fp@9xfpANsBcA)fY5Zb zqHix?lyRvxjo;5zrpp(g@ywfpvcahNx+;Bg5%)xYtV#(NwMBaK10;sVcpcf~HE2ly zanNmdN#OkClD3a#Wi?8^1RnfWO)af7pQv}Het2kUYX}c^7Od>co;sieep@~%8McJp zaNS?4tECvcN1JVTUJHJE8xS11?Tb_iDB*=-u)vURK0nY~{PJ3cs1bz3&>$V3U`NJY)ABVuF#hom~$UnG(wZqy$EiKM(E=*2~ zeZ9~Zuuxd6SmAka&w((Mbqv9Q6T#mFE_cS2g|6|EUZrD~+$wD!%BO`~lITdO0M@5D zs-;+%wnr@*d~9)Smqv~AN9o@MM=BENC?NM8S{+wLOVTG?SPspFcp|!fA%p0hX#>CS z7)m+05R`h(z6}IEo*1izt3$H%k5 z#AWVk$t-mB=`uV&dUcP~FC{cnNQ9*aWdQ&%|1O%>D z#sb3h)k+DwsT)zEE^b7f;ku@7LV1Ia?Nu41@YSZkSF2b1nKAebFc2FHi+;lM zMwv0YlMopOGna#MRL+$2CxWHw0DyOWnrQ3Y-`2LBA_=-QsZIHLc-!Z%YTlSi{sg;C zBnM#!G?2G#Or8$_(F5441ADKeb5kE)a`ppuu#_Q`>&FO}oW+nufaE^T)h=z2+d4N_ zB2=0_@KSDn01m^KeD?wNOm~}-ZviG;RC7Ujzuu>UhuiKvW~}i=bGmA&YfMQ6+FF_@ zPs%LNjxm_n2*d1Squ5+Wy~{eZ)bDwsBq!5_hcJreC{vAmF{rEzC@yv{Z%RWjsv<|4 zw%+sxE_kwfq^%JWnB=5fBsMa_3 z5vJU<;7|NKFJ(v(j3D{()=KD~mB8pcdb7`jR~T5)r&~}6I$$V!?Ms5-`KP*! zx;$yGt?yg;mr)Jb8OB>bY}Dn>8%$=kfk(#6=ax)m#%KStDb=w2m0TBtU{Re4&~BM@ zKuGFgDp3&T?>v-1*7?e~ey+bzXXMxO#_^Wcl6#JQ9xYWe=MBpM!M?4T)!KOPP6=bz zDhoK;-G~zSU1L{lX!P*K-7yc06h*Y6fM-}i%0nm?uM>U#44zC8`Rhb!&%jv|Yd4?U zfIBj0WukfS-QhW8O4mWiW!&x_KU=go`~n1kneZriFKt6ho?|E;w-F3q+s!d?#Q3&B zfMCm>CD%b5!o8QANb9j>MUv;}~MKmgj}b8cFXpKmW7$06UWWg$u- zC}ANRTs+ueQL8)CG-~WzxM>wm%}P*LgL&ofQX3Sq7LdH{xbmpyz&o#-z~JHiAkXvi zWNZd3i(mNzGH*F4NlE~1e~B{#`9MK`>!xt`JsY~?aNNKt96W0fpg3LlvKTIDD>_>Y zM|Gu?`^DOtYD4Gtg78=Ejt76PpUcV}2bio5d&wo6?s&Z3k+Z(7RDxh~B(p;vgugL| z&FOPr)u{Fq2?)dIz`>pUc+8VV%U^uJ%M#BYEKBB<*sS)H#&s8>ZWYvR;JmhSmD>*3 zeL+~H81Pkc$p^pIEUI|Qf0-x&OH>=%Q)L`~>h}PG2g-4vrs;|MQ$(zx6cZ;OkQz<^ zg0;)S>!Ul7_cC_E;z|;aSPn{9yF}(yu5oVCL83DjjsNLUWVYNQX`VgHtm#R`xT^Mwye?e5g z890oVbUNtj+=Y@EVzZ1R&$3BMcvxe_=ZfJ-=|Z>PK>zINN=|RJK`z>EVgh6b2G(i6(uYqNyT+XSx#^IGfHHA)wuieHK^(j0PfcxC7Y_Y^Ibny zt_rHVqQn*@V_O9TUzk+FLnVty|L)5RbWZwl0N}CAeDu0Y-@(tv8(WR;PVQVMW#EV}<><07Aa(@?{Vear=$Y3U}^EjmS&S0-RY6d4_;5OHkJi zC2xH{5AL?gvxSvpuV)=2a|4xP8ClPf#ciI?j8R077%MH(h7Q`+(%W1kAK{xHT~a z^hjb2ttTMH{Oh$KZ&QXVXUKyX-0MSIaB;{`)JF*6)*tG0>*Kz0l*CKP#P%qEZh|F~ z>lXK+64cdK=qvi7&H1}?c=G9FnL><%e8Oq!fJZ+2R?a{Z`q3<{PFbooC)!g6AB`#& z_@@4GI^Db6FW#Z#tAh|Z%lm?q-|FQrI(IMw4YP=VG@KXlsVF0~A+wvDrpxdYfxRqQnSOSC23-9M9z97NK(h0Y z)|Kbtv;~v*RWEq8NaB+uS@J@scA`oaIvRbd<1B2_*n`97jj%7XgC3*}q2G=RUWYsRo2Bu|FC2k(n4jvEAqk*XP%S;@~V|iZ))?$vx>WCmL-zq;fO2b^I^2xqURs2JDIZVvkxao zJeP*~zi%#-P@=MDykdW|QjP_p?UgZFB_rufWsH{1D4~I}ety*aqlh#MwCgJ@6Bm@Q z6wJAKa%P(mFM1eD>W?D5H3Zjt6d9~BCNNz-;3oFXQMTZ~56Ili8?K_-A=T#=Cmu4kwmOW0tD{C@7+vR@JHsf! z4$p&O6lsrVW*9Z83J%=_2A-M0UFZDe=xXy3FtCzT@0r3HnUvr6n z4t=mNu?L%>a)~*1$n0{dicHqbP=_A|RGu_y6yFto*O)+o4*1@10%h{J_)nlhjECMl{~_(JJYuG!X3USQ(vsXlxsg}O z%Swbf)+q4*hR)6sWxv0iNR1q!F>n$-1W!ZEBrz0MM%rxt>dc6pMm1jkyt@Rj ztd~mRya60~2V_I%wIiz5>6r`fxIL7G2*bI*h?+S8!h}60f<9GVQz(W5GAB{D8qD)ik^mv;e?eb0v8>pyX} zk)FX*$lDq8_(locJLpK0eCL_erNmB#Q8`CMI zhHi|ZcC?^x*Ts;a*zal$lrXfw%B8xF64tC2R$aEpNT{{dcs7+EO$9Yz;nkTz5iV%s zWhE+d(MdPro6R7bn)uXe2Bo4%-))AN^{MOjH;!9&rw!2ap$6uIsDz}TfM9j1fALM$ zAj^_yK=7=`7Jusus-s6I4+4VCj5Mp>gKIZ#{#qiD@7t;}XV64F3=h)cscLh8FChQ=Xnk6xGogs0cU(FSebLO=; z41oGzpsEVMio3I12B{+J0gz2Auy^P;lu!$e<;x+Ltf$IGd-BNZC&I?gnGMLr%L7m7uAjvTjETq+j zJRq;j6Fgl!fP?$~h1#&NZintGWE^Nrq>C_@y#*_ynd~j-tDLLn9}1=zk=E_pNfyZ#Tdx?GY=Fn2D@ zrPz9ywD>8~W7xalkimVPFtBS`KVDa?t10>^HP~VvZLWi%do@u6=sK;P@#CVzKHf%> z5ElKZ#XJQVS6%;aTpoV0x#vZJ)EKuwm5_f4X8Z*)#&}-vWZ=+jHo+ChhDy zvpp$qO-06bhl&O{9X|h3u7PmC2Jf1j^cNh(nAH5fd&J0uWm8eV1@<0jAG|?GY14u0R!)%sYGc>5=V@H1Wgl5KCns!U65akB*S;|9~3Mb;=jU!Vw54=+s9hcUsmMSHed&E+T zL@sxO`8?)}fP;7Dd53d@8r?B|vhzL|O{ylnaCNs+@RP8zMs=n$~?@2&&W z^?!=+tK;8pFF6#_dqWev^CY-6`OERPqdv?v;JrHDfB9_Sf-!zw+v{h`0Mk!zE%|cV zJ-_*Q=Se;zJiF74vECn4$2$}7dtu$<%N|>dU->8H`RW2@A9fRF&(|&eGSt&--h@vW zIc_+*W|??8KX!0Y-=mF0`SY%hUVl__YB5v>c->@h+$q<`i?dK}1-v&O92p)y*XdZ< z^N`O2g#d2yvenkN{juLXyfZunyms@5U)4HkDL%Bqhsu|}f4C%jqH6};*)sn*ujiMJ z=e_>EjCaiF*wZ=BR#+x|GIE@c;QiebDLH;RrwS<+{<Eql_Lv<;ihE`fS<$nR6a`2e| diff --git a/package.json b/package.json index 2bde455..060dc8b 100644 --- a/package.json +++ b/package.json @@ -68,6 +68,7 @@ "solid-devtools": "^0.30.1", "solid-js": "^1.9.3", "solid-styled": "^0.11.1", + "solid-transition-group": "^0.2.3", "stacktrace-js": "^2.0.2", "workbox-core": "^7.3.0", "workbox-precaching": "^7.3.0" diff --git a/src/timelines/RegularToot.tsx b/src/timelines/RegularToot.tsx index 85048da..52f0243 100644 --- a/src/timelines/RegularToot.tsx +++ b/src/timelines/RegularToot.tsx @@ -24,6 +24,8 @@ import TootActionGroup from "./toots/TootActionGroup.js"; import TootAuthorGroup from "./toots/TootAuthorGroup.js"; import "./RegularToot.css"; import { vibrate } from "~platform/hardware.js"; +import { Transition } from "solid-transition-group"; +import { ANIM_CURVE_SHARP, ANIM_CURVE_STD } from "~material/theme.js"; export type TootEnv = { boost: (value: mastodon.v1.Status) => void; @@ -97,7 +99,7 @@ export function createDefaultTootEnv( const result = reblogged ? await c.v1.statuses.$select(status.id).unreblog() - : (await c.v1.statuses.$select(status.id).reblog()); + : await c.v1.statuses.$select(status.id).reblog(); if (status.reblog && !reblogged) { // When calling /reblog, the result is the boost object (the actor @@ -300,13 +302,22 @@ const RegularToot: Component = (oprops) => { - + {props.actionable && ( - - + )} + { + (el as HTMLElement).addEventListener("animationend", done) + el.classList.add("Transition-exit") + }} + > + + + + ); diff --git a/src/timelines/toots/TootActionGroup.css b/src/timelines/toots/TootActionGroup.css index 11653e6..c955226 100644 --- a/src/timelines/toots/TootActionGroup.css +++ b/src/timelines/toots/TootActionGroup.css @@ -2,7 +2,7 @@ padding-block: calc((var(--card-gut) - 10px) / 2); contain: layout style; - animation: 125ms var(--tutu-anim-curve-std) TootActionGroup_fade-in; + animation: 125ms var(--tutu-anim-curve-sharp) TootActionGroup_fade-in; display: flex; flex-flow: row wrap; justify-content: space-evenly; @@ -28,16 +28,19 @@ >.plain { justify-content: center; } + + &.Transition-exit { + animation: 125ms var(--tutu-anim-curve-sharp) TootActionGroup_fade-out; + } } @keyframes TootActionGroup_fade-in { 0% { opacity: 0.5; transform: translateY(-10px); - margin-bottom: -20px; + margin-bottom: -30px; } - 25% { margin-bottom: 0; } @@ -46,4 +49,22 @@ opacity: 1; transform: translateY(0); } +} + +@keyframes TootActionGroup_fade-out { + 0% { + opacity: 1; + transform: translateY(0px); + margin-bottom: 0px; + } + + 75% { + margin-bottom: -30px; + } + + 100% { + opacity: 0; + transform: translateY(-10px); + margin-bottom: -30px; + } } \ No newline at end of file From 70a8e15be972d39382b0483484bd8c3cf7378f12 Mon Sep 17 00:00:00 2001 From: thislight Date: Fri, 3 Jan 2025 22:14:03 +0800 Subject: [PATCH 39/57] Home: minor cleanup --- src/timelines/Home.tsx | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/timelines/Home.tsx b/src/timelines/Home.tsx index e7774bc..aa6adac 100644 --- a/src/timelines/Home.tsx +++ b/src/timelines/Home.tsx @@ -38,7 +38,7 @@ type StringRes = Record< const Home: ParentComponent = (props) => { let panelList: HTMLDivElement; - const [t] = createTranslator( + const [t, [stringRes]] = createTranslator( (code) => import(`./i18n/${code}.json`) as Promise<{ default: StringRes }>, ); const now = createTimeSource(); @@ -105,17 +105,15 @@ const Home: ParentComponent = (props) => { const windowSize = useWindowSize(); createEffect((last) => { - if (last !== windowSize.width) { + const { width } = windowSize; + if (last !== width) { requestRecalculateTabIndicator(); } + return width; }); - const [inTransition] = useTransition(); - createEffect(() => { - if (!inTransition()) { - requestAnimationFrame(recalculateTabIndicator); - } + requestRecalculateTabIndicator(); }); const isTabFocus = (idx: number) => { @@ -178,7 +176,7 @@ const Home: ParentComponent = (props) => { return ( <> - Timelines + Timelines From 654bb749fb7ce80b80891052e09fd94bd7a20af9 Mon Sep 17 00:00:00 2001 From: thislight Date: Fri, 3 Jan 2025 22:17:14 +0800 Subject: [PATCH 40/57] bump to v2.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 060dc8b..a574f81 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package", "name": "tutu", - "version": "1.1.0", + "version": "2.0.0", "description": "", "private": true, "type": "module", From 99efa6b42c79dad130ed95c82947b4fc35a55423 Mon Sep 17 00:00:00 2001 From: thislight Date: Sat, 4 Jan 2025 17:05:18 +0800 Subject: [PATCH 41/57] add versioning policy --- docs/versioning.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 docs/versioning.md diff --git a/docs/versioning.md b/docs/versioning.md new file mode 100644 index 0000000..4d50356 --- /dev/null +++ b/docs/versioning.md @@ -0,0 +1,32 @@ +# Versioning & Development Cycle + +The versioning policy follows the [Semantic Versioning](https://semver.org/). +Since Tutu is an app for the end user, we redefine the some words in the policy: + +- API changes: the app is no longer available on certain platforms. + +## Development Cycle + +Dependency Freeze -> Development -> Release + +### Dependency Freeze + +This step is for: + +- Update dependencies +- Prepare the new version (like, bump the version number). + +New dependencies should not be added in this step. + +### Development + +In this step, dependencies can only be updated if it's required to fix bugs. + +New dependencies should be added as their use, in this step. + +### Release + +The version is released to production in this step. + +Before the next development step, new versions can still be released to +fix bugs. From 203eeb9761e13baccbbef7a79862ecb62cc6eab0 Mon Sep 17 00:00:00 2001 From: thislight Date: Sat, 4 Jan 2025 17:10:54 +0800 Subject: [PATCH 42/57] fix type errors --- src/material/BottomSheet.tsx | 2 +- src/material/Menu.tsx | 2 +- src/timelines/MediaViewer.tsx | 2 +- src/timelines/PullDownToRefresh.tsx | 2 +- src/timelines/TootLangPicker.tsx | 2 +- src/timelines/toots/PreviewCard.tsx | 2 +- src/timelines/toots/TootPoll.tsx | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/material/BottomSheet.tsx b/src/material/BottomSheet.tsx index 99bfbd0..5b463a0 100644 --- a/src/material/BottomSheet.tsx +++ b/src/material/BottomSheet.tsx @@ -51,7 +51,7 @@ function animateSlideInFromBottom(element: HTMLElement, reverse?: boolean) { } const BottomSheet: ParentComponent = (props) => { - let element: HTMLDialogElement; + let element!: HTMLDialogElement; let animation: Animation | undefined; const child = children(() => props.children); diff --git a/src/material/Menu.tsx b/src/material/Menu.tsx index 931b756..3bc2ab0 100644 --- a/src/material/Menu.tsx +++ b/src/material/Menu.tsx @@ -108,7 +108,7 @@ function animateGrowFromTopLeft( * - Use {@link MenuItem} from SUID as children. */ const Menu: Component = (oprops) => { - let root: HTMLDialogElement; + let root!: HTMLDialogElement; const windowSize = useWindowSize(); const [props, rest] = splitProps(oprops, [ "open", diff --git a/src/timelines/MediaViewer.tsx b/src/timelines/MediaViewer.tsx index ba92772..af3ef7b 100644 --- a/src/timelines/MediaViewer.tsx +++ b/src/timelines/MediaViewer.tsx @@ -38,7 +38,7 @@ function clamp(input: number, min: number, max: number) { } const MediaViewer: ParentComponent = (props) => { - let rootRef: HTMLDialogElement; + let rootRef!: HTMLDialogElement; type State = { ref?: HTMLElement; diff --git a/src/timelines/PullDownToRefresh.tsx b/src/timelines/PullDownToRefresh.tsx index 4f829ee..6393050 100644 --- a/src/timelines/PullDownToRefresh.tsx +++ b/src/timelines/PullDownToRefresh.tsx @@ -17,7 +17,7 @@ const PullDownToRefresh: Component<{ linkedElement?: HTMLElement; onRefresh?: () => void; }> = (props) => { - let rootElement: HTMLDivElement; + let rootElement!: HTMLDivElement; const [pullDown, setPullDown] = createSignal(0); const stopPos = () => 160; diff --git a/src/timelines/TootLangPicker.tsx b/src/timelines/TootLangPicker.tsx index e86f69e..7ed1055 100644 --- a/src/timelines/TootLangPicker.tsx +++ b/src/timelines/TootLangPicker.tsx @@ -23,7 +23,7 @@ type ChooseTootLangProps = { }; const ChooseTootLang: Component = (props) => { - let listRef: HTMLUListElement; + let listRef!: HTMLUListElement; const [t] = createTranslator( (code) => import(`./i18n/${code}.json`) as Promise<{ diff --git a/src/timelines/toots/PreviewCard.tsx b/src/timelines/toots/PreviewCard.tsx index 5e6780e..c4b4036 100644 --- a/src/timelines/toots/PreviewCard.tsx +++ b/src/timelines/toots/PreviewCard.tsx @@ -17,7 +17,7 @@ export function PreviewCard(props: { src: mastodon.v1.PreviewCard; alwaysCompact?: boolean; }) { - let root: HTMLAnchorElement; + let root!: HTMLAnchorElement; createEffect(() => { if (props.alwaysCompact) { diff --git a/src/timelines/toots/TootPoll.tsx b/src/timelines/toots/TootPoll.tsx index a2b9dc6..5c08c21 100644 --- a/src/timelines/toots/TootPoll.tsx +++ b/src/timelines/toots/TootPoll.tsx @@ -33,7 +33,7 @@ type TootPollProps = { }; const TootPoll: Component = (props) => { - let list: HTMLUListElement; + let list!: HTMLUListElement; const { vote } = useTootEnv(); const now = useTimeSource(); From d4f41330de606c8ddc3b2f14d732450eb138ebe0 Mon Sep 17 00:00:00 2001 From: thislight Date: Sat, 4 Jan 2025 17:13:44 +0800 Subject: [PATCH 43/57] autoupdate dependencies --- bun.lockb | Bin 511484 -> 514385 bytes package.json | 22 +++++++++++----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bun.lockb b/bun.lockb index d4f126222e69f3b7917f5e09d3b4938e4788aacf..2826c9427d372a1ebd5c453d4631b7e46e79b78a 100755 GIT binary patch delta 94368 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%0A0Qn)~&tMKj$ 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 VJ7d=}!OD&{?GbE@v{#6={9pU#?!Ev3 delta 92799 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%0AIo>wD`DF;Us>gtvpWP_vP`E*KZyab_!;_ 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 Date: Sat, 4 Jan 2025 17:17:51 +0800 Subject: [PATCH 44/57] update vite & vite-plugin-pwa --- bun.lockb | Bin 514385 -> 524620 bytes package.json | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bun.lockb b/bun.lockb index 2826c9427d372a1ebd5c453d4631b7e46e79b78a..45ad90de6e18e48cdac154c22d30f0f2ea76d875 100755 GIT binary patch delta 49668 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 N166T4Rg*XUe*ncARyP0u delta 43367 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 Qjxp-l!K`Z=i^US%f3@-9U;qFB diff --git a/package.json b/package.json index a7739a4..7b91ad0 100644 --- a/package.json +++ b/package.json @@ -32,9 +32,9 @@ "prettier": "^3.4.2", "tsx": "^4.19.2", "typescript": "^5.7.2", - "vite": "^5.4.11", + "vite": "^6.0.7", "vite-plugin-package-version": "^1.1.0", - "vite-plugin-pwa": "^0.20.5", + "vite-plugin-pwa": "^0.21.1", "vite-plugin-solid": "^2.11.0", "vite-plugin-solid-styled": "^0.11.1", "wdio-vite-service": "^2.0.0", From 5945f07ce827749da2881a202f7dfce337b6064c Mon Sep 17 00:00:00 2001 From: thislight Date: Sat, 4 Jan 2025 17:36:01 +0800 Subject: [PATCH 45/57] update solid-devtools --- bun.lockb | Bin 524620 -> 522868 bytes package.json | 4 ++-- tsconfig.super.json | 4 ++-- vite.config.ts | 9 ++++----- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/bun.lockb b/bun.lockb index 45ad90de6e18e48cdac154c22d30f0f2ea76d875..247b2325729f9b123f579e864df977d9b9c10912 100755 GIT binary patch delta 99848 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 XOJbZLx|gK9M(M@2Rlkz#dP@HX*rbH0 delta 100654 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≠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 diff --git a/package.json b/package.json index 7b91ad0..25814fe 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "author": "Rubicon", "license": "Apache-2.0", "devDependencies": { - "@solid-devtools/overlay": "^0.30.1", + "@solid-devtools/overlay": "^0.33.0", "@suid/vite-plugin": "^0.3.1", "@testing-library/webdriverio": "^3.2.1", "@types/hammerjs": "^2.0.46", @@ -65,7 +65,7 @@ "masto": "^6.10.1", "nanostores": "^0.11.3", "normalize.css": "^8.0.1", - "solid-devtools": "^0.30.1", + "solid-devtools": "^0.33.0", "solid-js": "^1.9.3", "solid-styled": "^0.11.1", "solid-transition-group": "^0.2.3", diff --git a/tsconfig.super.json b/tsconfig.super.json index 9cf8e60..d04be40 100644 --- a/tsconfig.super.json +++ b/tsconfig.super.json @@ -2,8 +2,8 @@ "compilerOptions": { "strict": true, "target": "ESNext", - "module": "esnext", - "moduleResolution": "node", + "module": "ESNext", + "moduleResolution": "bundler", "allowSyntheticDefaultImports": true, "esModuleInterop": true, "noEmit": true, diff --git a/vite.config.ts b/vite.config.ts index 0e72623..02bc4a8 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -4,7 +4,7 @@ import solidStyled from "vite-plugin-solid-styled"; import suid from "@suid/vite-plugin"; import { VitePWA } from "vite-plugin-pwa"; import version from "vite-plugin-package-version"; -import manifest from "./manifest.config"; +import manifest from "./manifest.config.js"; import { GetManualChunk } from "rollup"; import devtools from "solid-devtools/vite"; import { resolve } from "node:path"; @@ -70,17 +70,16 @@ export default defineConfig(({ mode }) => { plugins: [ devtools({ autoname: true, - locator: { + locator: devConf["DEV_LOCATOR_EDITOR"] ? { targetIDE: (devConf["DEV_LOCATOR_EDITOR"] as | "vscode" | "atom" | "webstorm" - | "vscode-insiders" - | "") || undefined, + | "vscode-insiders") || "vscode", componentLocation: true, jsxLocation: true, - }, + } : undefined, }), suid(), solid(), From e617f344f886376c4be2cc5a044450954f609c18 Mon Sep 17 00:00:00 2001 From: thislight Date: Sat, 4 Jan 2025 17:36:56 +0800 Subject: [PATCH 46/57] fixup! update solid-devtools --- vite.config.ts | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/vite.config.ts b/vite.config.ts index 02bc4a8..d23c5cb 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -70,16 +70,17 @@ export default defineConfig(({ mode }) => { plugins: [ devtools({ autoname: true, - locator: devConf["DEV_LOCATOR_EDITOR"] ? { - targetIDE: - (devConf["DEV_LOCATOR_EDITOR"] as - | "vscode" - | "atom" - | "webstorm" - | "vscode-insiders") || "vscode", - componentLocation: true, - jsxLocation: true, - } : undefined, + locator: devConf["DEV_LOCATOR_EDITOR"] + ? { + targetIDE: devConf["DEV_LOCATOR_EDITOR"] as + | "vscode" + | "atom" + | "webstorm" + | "vscode-insiders", + componentLocation: true, + jsxLocation: true, + } + : undefined, }), suid(), solid(), From 937efe11079215103335f866ceacceb9370de88a Mon Sep 17 00:00:00 2001 From: thislight Date: Sat, 4 Jan 2025 17:51:19 +0800 Subject: [PATCH 47/57] update targets * browserlist file is removed --- .browserlist | 1 - README.md | 12 ++++++------ src/platform/polyfills.ts | 33 +++++++++++---------------------- vite.config.ts | 2 +- 4 files changed, 18 insertions(+), 30 deletions(-) delete mode 100644 .browserlist diff --git a/.browserlist b/.browserlist deleted file mode 100644 index b547231..0000000 --- a/.browserlist +++ /dev/null @@ -1 +0,0 @@ ->0.3% and not dead, firefox>=98, safari>=15.4, chrome>=84 \ No newline at end of file diff --git a/README.md b/README.md index 0bb7288..a4c432a 100644 --- a/README.md +++ b/README.md @@ -8,17 +8,17 @@ Tutu is a comfortable experience for tooting. Designed to work on any device - d The code is built against those targets and Tutu must run on those platforms: -| Firefox | Safari | iOS | Chrome | Edge | -| ------- | ------ | ----- | ------ | ---- | -| 98 | 15.4 | 15.4 | 84 | 87 | +| Firefox | Safari | iOS | Chrome & Edge | +| ------- | ------ | ----- | ------------- | +| 115 | 15.6 | 15.6 | 108 | Tutu trys to push the Web technology to its limit. Some features might not be available on the platform does not meet the requirement. -## The "Next" Branch +## The "Nightly" Branch -The "next" branch of the app is built on every commit pushed into "master". You can tatse latest change but risks your data. +Tutu built on the latest code, called the nightly version. You can tatse latest change but risks your data. -[Launch Tutu (Next)](https://master.tututheapp.pages.dev) +[Launch Tutu (Nightly)](https://master.tututheapp.pages.dev) ## Build & Depoly diff --git a/src/platform/polyfills.ts b/src/platform/polyfills.ts index 6bbf700..fd44153 100644 --- a/src/platform/polyfills.ts +++ b/src/platform/polyfills.ts @@ -1,38 +1,27 @@ //! This module has side effect. //! It recommended to include the module by