Add folder pagination, arm64 images, and accent colors#12
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 470debca85
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const seenPaths = new Set(loadedFileItems.map((item) => item.path)); | ||
| const newItems = fileList.items.filter((item) => !seenPaths.has(item.path)); | ||
| if (newItems.length > 0) { | ||
| loadedFileItems = [...loadedFileItems, ...newItems]; |
There was a problem hiding this comment.
Keep stale rows out of paginated refetches
When the user has loaded page 2+ and then any operation refetches the directory without resetting to page 1 (for example Refresh, rename, delete, upload completion, or paste), the API returns only the current page, but this branch only appends paths not already seen and never removes or updates existing loadedFileItems. In that state a deleted or renamed item from an already-loaded page remains visible indefinitely, and shifted-in items are appended out of order. The accumulated list needs to be rebuilt or page 1 reloaded after mutations/refetches.
Useful? React with 👍 / 👎.
| function handleLoadMore() { | ||
| if (!hasMoreItems || directoryQuery.isFetching) return; | ||
| listOptionsStore.setPage(options.page + 1); | ||
| } |
There was a problem hiding this comment.
Retry the missing page instead of skipping it
If a “Load more” request fails after setPage has already advanced (for example page 2 times out), loadedFileItems still contains only the earlier pages while options.page remains at the failed page. The next click increments from that failed page and requests page 3, permanently skipping page 2’s items in the accumulated list. Base the next page on loaded item count or retry the current failed page before advancing.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Pull request overview
This PR improves the app’s usability and deployability by adding incremental “Load more” pagination for large folder listings, introducing a persisted UI accent color setting, and publishing multi-architecture Docker images (amd64 + arm64). These changes fit into the existing SvelteKit frontend (settings + browse UX) and GitHub Actions release pipeline.
Changes:
- Add “Load more” pagination for directory listings, including status-bar affordances and accumulated item handling across pages.
- Add a persisted custom accent color setting and apply it globally via CSS custom properties.
- Publish Docker images for both
linux/amd64andlinux/arm64, and bump package versions to0.1.5.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
website/package.json |
Bumps website package version to 0.1.5. |
frontend/package.json |
Bumps frontend package version to 0.1.5. |
frontend/src/routes/settings/+page.svelte |
Adds accent color setting UI, validation, and save behavior. |
frontend/src/routes/browse/+page.svelte |
Implements incremental pagination by accumulating items across pages and wiring “Load more” behavior. |
frontend/src/routes/+layout.svelte |
Applies the persisted accent color globally on settings changes. |
frontend/src/lib/stores/settings.ts |
Adds accentColor to settings + utilities to normalize/validate/apply theme CSS variables. |
frontend/src/lib/components/StatusBar.svelte |
Adds total-count display and a “Load more” button with loading state. |
.github/workflows/docker-publish.yml |
Enables multi-arch Docker publishing via QEMU + Buildx and sets platforms. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary
Tests
Closes #10
Closes #11