david_bai
29897bea87
refactor(i18n): convert remaining useMessages to useTranslations
...
- FAQSection: useTranslations with dynamic keys via type assertion
- ClipboardApp: useTranslations for JSX, keep useMessages for hooks
- SendTabPanel: useTranslations for html and roomStatus namespaces
- RetrieveTabPanel: useTranslations for html, roomStatus, and ClipboardApp
- FileListDisplay: useTranslations for FileListDisplay namespace
- FileUploadHandler: useTranslations for fileUploadHandler namespace
Only ClipboardApp.tsx retains useMessages for hooks requiring full messages object.
2026-03-27 15:09:15 +08:00
david_bai
131d1e12f5
refactor(i18n): use native messages in clipboard panels
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-27 14:21:53 +08:00
david_bai
362a805c9b
refactor(i18n): use native messages in faq section
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-27 14:21:53 +08:00
david_bai
2012412bc1
refactor(i18n): remove translation provider facade
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-27 14:21:53 +08:00
david_bai
d72f3d3860
refactor(i18n): migrate clipboard widgets to useTranslations
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-27 14:16:08 +08:00
david_bai
b364ef3c16
refactor(i18n): migrate blog list item translations
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-27 14:15:46 +08:00
david_bai
c845399856
refactor(i18n): migrate home sections to native next-intl hooks
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-27 14:15:46 +08:00
david_bai
0ccefbd0c1
refactor(i18n): migrate shared chrome to useTranslations
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-27 14:15:45 +08:00
david_bai
6c93b1d995
build(i18n): add next-intl routing infrastructure
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-27 14:04:28 +08:00
david_bai
cf529eed64
refactor(i18n): replace prop drilling with translation context
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-27 14:04:28 +08:00
david_bai
57004b3a1f
refactor(i18n): normalize translation keys
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-27 14:04:28 +08:00
david_bai
761921684c
feat(ui): add 8s P2P slow-connect hint + i18n; document full connection feedback flows
...
- Hook (useConnectionFeedback):
- Add SLOW_RTC_MS=8000 timer when entering negotiating
- Foreground-only; pending while hidden; show once per negotiation attempt
- Clear timers on connect/disconnect; reset attempt flags when leaving negotiating
- Cleanup timers on unmount
- i18n:
- Add required key ClipboardApp.rtc_slow to types
- Provide translations for zh, en, ja, es, de, fr, ko
- Docs:
- flows.zh-CN: add UI connection feedback state machine covering
join_inProgress (immediate), join_slow (3s), join_timeout (15s),
rtc_negotiating, rtc_slow (8s), rtc_connected, rtc_reconnecting, rtc_restored;
document equivalent success signals and visibility gating
- code-map.zh-CN: outline responsibilities/locations for useRoomManager (join slow/timeout)
and useConnectionFeedback (negotiation slow, reconnect/restored)
2025-12-05 19:10:00 +08:00
david_bai
27375c1a4d
refactor(theme): use design tokens and fix dark mode visuals
...
- Replace hardcoded Tailwind colors (bg-white, bg-gray-50/100, text-gray-, border-gray-, divide-gray-*, text-blue-600/800, bg-blue-50) with design tokens (bg-card, bg-muted, text-foreground, text-muted-foreground, border-
border, text-primary, hover:bg-accent, bg-primary/10).
- ClipboardApp: update RichTextEditor toolbar/editor, FileUploadHandler, ShareCard, FileListDisplay, SendTabPanel, RetrieveTabPanel, FileTransferButton.
- Blog UI: unify styles in list page, tag page, post page, ArticleListItem, and TableOfContents.
- MDX/prose: normalize pre/code/table/blockquote/lists and figure captions; switch rehype table divider to theme token.
- Misc: adjust HomeClient and HowItWorks copy colors to tokens.
- No functional changes; light mode parity; improved contrast and consistency in dark mode.
2025-11-25 21:52:45 +08:00
david_bai
723a1ea086
feat(ux): cached roomId auto-join + theme toggle
...
- Receiver: auto-fill and join on Retrieve tab when input empty, not in room, no URL roomId, and cachedId exists (ClipboardApp + roomIdCache)
- Sender: “Use cached ID” now immediately joins the room (add onUseCached + disabled to CachedIdActionButton; wire in SendTabPanel)
- UI: add ThemeToggle and integrate into Header (desktop and mobile)
- Styles: replace hardcoded white with design tokens in Retrieve panel (bg-card/text-card-foreground) for dark mode
- Docs: update AI playbook flows and code-map
2025-11-25 12:24:28 +08:00
david_bai
89a38936b6
feat(blog-i18n): localize blog UI & SEO; add tag pages to sitemap
...
- Add Messages.meta.blog and text.blog (BlogTexts) to types/messages
- Update all locales with blog UI strings and meta.blog
- Localize blog list, tag pages, and article detail (titles, labels, dates)
- Pass messages to ArticleListItem; TableOfContents supports localized title
- Use dictionary-based metadata; alternates cover all supported locales
- Sitemap: include /[lang]/blog/tag/{tag} and set blog list lastModified to newest post
- JSON-LD: hardcode site URL in getSiteUrl() for consistency
2025-11-22 10:37:29 +08:00
david_bai
b2aa493e2d
chore(code):"Use Cache ID" button double-click to temporarily switch to "Save ID" function
2025-10-23 23:05:34 +08:00
david_bai
5ca89d71ad
chore(code):Add cache room ID feature, no need to manually input room ID
2025-10-23 20:47:49 +08:00
david_bai
0621fb27db
SEO: add JSON-LD structured data
...
- Add generic JSON-LD injector component and builders
- components/seo/JsonLd.tsx
- lib/seo/jsonld.ts
- Inject Organization and WebSite JSON-LD globally in [lang]/layout
- Inject WebApplication JSON-LD on the localized home page
- Localize description/url/inLanguage and set alternateName ["PrivyDrop", "PrivyDrop APP"]
- Inject FAQPage JSON-LD only on /[lang]/faq (not on home)
- Build Q&A from messages.text.faqs
- Inject BlogPosting + BreadcrumbList on blog post pages
- Use frontmatter.cover as image, localized breadcrumbs
Notes
- Use stable @id anchors (/#organization, /#website, /[lang]#app, /[lang]/blog/[slug]#post)
- Respect multi-language setup across en/zh/ja/es/de/fr/ko
- SameAs limited to GitHub and X as provided
- Site URL resolved via NEXT_PUBLIC_SITE_URL or defaults to https://www.privydrop.app
2025-10-13 21:19:07 +08:00
david_bai
663082efe1
chore(doc): Replace Chinese comments with English comments
2025-10-08 15:59:50 +08:00
david_bai
cfcd60145a
build: refresh docker deployment workflow
2025-09-26 14:02:55 +08:00
david_bai
95331cb8e6
chore:Remove the redundant safety save button; Use English comments
2025-09-14 23:25:16 +08:00
david_bai
33f2f041ac
fix:Try to fix the problem of incomplete file size in resumable download
2025-09-14 07:35:34 +08:00
david_bai
8627544946
chore:Exit the room even if it is in transit
2025-09-13 20:01:02 +08:00
david_bai
6f8f4f65bb
chore:Save directory settings UI tip uses internationalization translation
2025-09-10 23:54:35 +08:00
david_bai
526e1b49c1
fix:Fix the issue of downloads failing in certain browsers
2025-09-08 23:59:29 +08:00
david_bai
8ff2302c14
code clear up
2025-09-08 00:12:02 +08:00
david_bai
ec6a18dfc0
fix:Adapting to Firefox browser, not yet completed
2025-09-05 00:19:33 +08:00
david_bai
a82ca50ee9
fix:Fix the issue of failing to join room with simple IDs
...
fix:Fix the issue of failing to join room with simple IDs
2025-09-01 00:04:31 +08:00
david_bai
0bcd2c0f97
chore:Random ID button added with simple ID switching function
2025-08-31 23:36:12 +08:00
david_bai
d9894a3477
feat:Add a function to generate random-length IDs, enhancing room security
2025-08-25 00:22:00 +08:00
david_bai
7b9138ed08
fix(UI):Optimize mobile layout
...
The copy in the extraction method has been added with a fallback mechanism to improve adaptability
2025-08-25 00:04:03 +08:00
david_bai
bb21c90a4e
fix:Fix the incomplete cleanup issue when the receiver exits the room
2025-08-17 23:56:09 +08:00
david_bai
caa861f1bb
refactor:Optimize chaotic state management
2025-08-17 15:44:59 +08:00
david_bai
cbbfae2733
fix:Fix the download count display issue
2025-08-17 13:24:41 +08:00
david_bai
20607be9aa
fix:The recipient needs to clean the connection when leaving the room
2025-08-17 12:14:26 +08:00
david_bai
75f9ff39ae
fix:Now there is a progress bar for file transfer
2025-08-17 10:10:40 +08:00
david_bai
083206bed3
refactor:Refactored the useRoomManager,useWebRTCConnection hook
2025-08-17 07:57:29 +08:00
david_bai
8f79a1ad16
fix:leave room button added to multiple languages.
2025-08-15 23:57:48 +08:00
david_bai
7ee9360b17
feat:Receiver adds a secure save button
...
Receiver adds a secure save button, used to save cache files during connection interruptions, making it convenient to resume transfers next time.
Button tooltip information added in multiple languages.
2025-08-15 23:49:24 +08:00
david_bai
307232bd15
fix:Attempt to fix the issue of asynchronous exit room status in the receiver
2025-08-14 23:02:33 +08:00
david_bai
abe3220d0f
feat:The sender side has also added the exit room function
2025-08-13 23:41:35 +08:00
david_bai
7038e79726
fix:Change the behavior of reloading the webpage when the receiver exits the room to a more elegant approach
2025-08-13 22:53:49 +08:00
david_bai
12cda8c030
fea:Add an elegant exit room feature for the recipient
2025-08-10 23:16:59 +08:00
david_bai
e83a95b354
chore(lang):Change 'Start Sending' displayed on the send button to 'Sync'
...
Meanwhile, the previous click status Sended is changed to Synced, making it easier for people to understand the characteristic that a connection can sustain transmission
2025-08-03 16:03:52 +08:00
david_bai
245c4efcd0
fix(blog url bug): fix blog url bug
...
Fixed the bug of redundant language suffix in blog URLs, added lang to the blog homepage link to prevent language switching issues.
2025-08-02 23:27:02 +08:00
david_bai
60c20fcfa6
feat(add features page):Added features page
...
Added features page.
Synchronously update SEO meta and corresponding international translations.
2025-07-24 23:32:16 +08:00
david_bai
1853063565
The GitHub link for mobile and desktop uses a uniform style, delete the GitHubRibbon component
2025-07-24 22:41:23 +08:00
david_bai
7e055643c5
Added description of breakpoint resume feature
2025-07-22 00:59:28 +08:00
david_bai
9ce63992b7
Fix the problem of resuming downloads when the webpage is closed or the network is disconnected. Further testing is needed.
2025-07-19 00:24:44 +08:00
david_bai
3560e0a3d7
use new brand name
2025-07-05 08:24:06 +08:00