aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/app/settings (follow)
Commit message (Collapse)AuthorAgeFilesLines
* feat: Add bookmark sources statistics section (#2110)Mohamed Bassem2025-11-091-0/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: add bookmark sources statistics to usage stats page Add a new section to the usage statistics page that displays stats about bookmark sources (mobile, extension, web, API, CLI, etc). Changes: - Add bookmarksBySource field to user stats response schema - Implement backend query to fetch bookmarks grouped by source - Add new "Bookmark Sources" card to stats page UI - Add helper function to format source names for display * refactor: use stricter enum type for bookmark sources in stats API Replace generic string type with zBookmarkSourceSchema enum for better type safety and autocomplete. This ensures the API contract matches the database schema definition. Changes: - Import and use zBookmarkSourceSchema in user stats response - Define BookmarkSource type alias in frontend - Update formatSourceName to use stricter type and return non-nullable - Remove fallback case since all enum values are now handled * refactor: use shared BookmarkSource type and add i18n support - Replace local BookmarkSource type with canonical type from shared package using z.infer<typeof zBookmarkSourceSchema> - Add translation support for "Bookmark Sources" title and empty state - Add bookmark_sources.title and bookmark_sources.empty keys to English locale file This ensures type consistency across the codebase and prepares for future localization of the bookmark sources feature. * fix icons --------- Co-authored-by: Claude <noreply@anthropic.com>
* feat: Add page titles (#2109)Mohamed Bassem2025-11-0911-0/+142
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: add Next.js metadata titles to dynamic and settings pages Add page titles using Next.js metadata API for better SEO and user experience: - List pages: Show list name in format "<name> | Karakeep" - Tag pages: Show tag name in format "<name> | Karakeep" - Admin pages: Add titles for overview, users, and background jobs pages - Settings pages: Add titles for all settings pages (API keys, AI, feeds, import, info, webhooks, subscription, rules, stats, assets, broken links) For client components (rules, stats, assets, broken-links), created layout.tsx files to export metadata since metadata can only be exported from server components. * feat: add Next.js metadata titles to dashboard pages Add page titles using Next.js metadata API to archive, favourites, highlights, and all tags pages: - Archive page: Show "Archive | Karakeep" - Favourites page: Show "Favourites | Karakeep" - Highlights page: Show "Highlights | Karakeep" - All Tags page: Show "All Tags | Karakeep" Improves SEO and user experience across all dashboard browsing pages. * refactor: use i18n translations for dashboard page titles Convert hardcoded page titles to use translations via generateMetadata: - Archive page: Uses common.archive translation - Favourites page: Uses lists.favourites translation - Highlights page: Uses common.highlights translation - All Tags page: Uses tags.all_tags translation Improves localization support across dashboard pages. * feat: add i18n translations to admin and settings page titles Convert hardcoded page titles to use translations via generateMetadata: - Admin Overview: Uses admin.admin_settings translation - AI Settings: Uses settings.ai.ai_settings translation - API Keys: Uses settings.api_keys.api_keys translation - Feed Settings: Uses settings.feeds.rss_subscriptions translation - Import/Export: Uses settings.import.import_export translation - Account Info: Uses settings.info.user_info translation - Subscription: Uses settings.subscription.subscription translation - Webhooks: Uses settings.webhooks.webhooks translation Improves localization support across admin and settings pages. * revert accidental commit * more translations * more fixes --------- Co-authored-by: Claude <noreply@anthropic.com>
* feat: Revamp import experience (#2001)Mohamed Bassem2025-10-041-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * WIP: import v2 * remove new session button * don't redirect after import * store and lint to root list * models + tests * redesign the progress * simplify the import session for ow * drop status from session schema * split the import session page * i18n * fix test * remove pagination * fix some colors in darkmode * one last fix * add privacy filter * privacy check * fix interactivity of import progress * fix test
* deps: Upgrade expo & nextjs to react 19 (#1565)Mohamed Bassem2025-08-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Attempt to upgrade expo 53 * Attempt upgrade nextjs * Fix a bunch of peer deps * upgrade some docs deps * fix typecheck * update the shadcn calendar component * more fixes * more fixes * revert ollama upgrade * update react version to use carets * remove react-select from landing * fix the typescript error caused by customFetch * upgrade the new grid user setting to nextjs 15 * mobile: enable react canary to support react 19.1 * upgrade react native menu * fix navigation context error
* fix: Avoid prefetching assets and tags in the link component. Fixes #1759Mohamed Bassem2025-07-261-0/+2
|
* feat: Hide AI settings tab if inference is not configured. #1781Mohamed Bassem2025-07-261-19/+19
|
* feat: Add stripe based subscriptionsMohamed Bassem2025-07-132-57/+93
|
* feat: Add delete account supportMohamed Bassem2025-07-131-0/+2
|
* feat: Add a new timezone user settingMohamed Bassem2025-07-061-0/+16
|
* fix: Fix i18n in the new stats pageMohamed Bassem2025-07-062-36/+60
|
* feat: Add new user stats page. Fixes #1523Mohamed Bassem2025-07-062-0/+501
|
* feat(web): Redesign the user settings pageMohamed Bassem2025-06-071-2/+2
|
* refactor: Move bookmark utils from shared-react to sharedMohamed Bassem2025-05-311-1/+1
|
* feat: Allow defaulting to reader mode when clicking on bookmarks. Fixes #662Mohamed Bassem2025-05-241-6/+11
|
* feat: Implement generic rule engine (#1318)Mohamed Bassem2025-04-272-0/+95
| | | | | | | | | | | | | | | | | * Add schema for the new rule engine * Add rule engine backend logic * Implement the worker logic and event firing * Implement the UI changesfor the rule engine * Ensure that when a referenced list or tag are deleted, the corresponding event/action is * Dont show smart lists in rule engine events * Add privacy validations for attached tag and list ids * Move the rules logic into a models
* chore: Rename hoarder packages to karakeepMohamedBassem2025-04-122-5/+5
|
* feat: Add a setting page to manage assets. Fixes #730Mohamed Bassem2025-02-232-0/+188
|
* feat: Change webhooks to be configurable by usersMohamed Bassem2025-01-192-0/+11
|
* refactor: Refactor sidebar into a shared componentMohamed Bassem2024-12-301-24/+62
|
* feature: Store crawling status code and allow users to find broken links. ↵Mohamed Bassem2024-12-081-0/+131
| | | | Fixes #169
* feature: Add i18n support. Fixes #57 (#635)Mohamed Bassem2024-11-171-1/+3
| | | | | | | | | | | | | * feature(web): Add basic scaffolding for i18n * refactor: Switch most of the app's strings to use i18n strings * fix: Remove unused i18next-resources-for-ts command * Add user setting * More translations * Drop the german translation for now
* feature: Add support for subscribing to RSS feeds. Fixes #202Mohamed Bassem2024-11-031-0/+5
|
* ui: Redesign the settings page and move it to its own layoutMohamed Bassem2024-10-276-0/+74