admin
ccd2d6bd48
feat(media): implement caching for chat media and update components to use cached media
2026-06-30 15:59:33 +08:00
admin
ba6ce57e62
refactor(app): tighten feature boundaries
2026-06-30 14:50:31 +08:00
admin
1fed21fa2f
refactor(chat): clean stale mocks and external browser helpers
2026-06-30 14:32:58 +08:00
admin
958a0f8ffd
feat(chat): handle credit-gated send responses
2026-06-30 14:17:14 +08:00
admin
c1dbd93ce1
fix(chat): show unlock dialog over image viewer
2026-06-30 11:54:04 +08:00
admin
a761917669
fix(chat): return directly to paid image
2026-06-30 11:14:15 +08:00
admin
f352dbdffa
fix(chat): constrain image viewer width
2026-06-30 10:58:57 +08:00
admin
cee63e8658
fix(chat): use weekly limit for message quota
2026-06-29 18:40:44 +08:00
admin
61796c732f
feat(chat): restore image viewer after payment
2026-06-29 16:19:48 +08:00
admin
096978e703
feat(subscription): split vip and topup flows
2026-06-29 14:45:01 +08:00
admin
6e51cb7d16
Refactor: Remove original Dart references from comments across multiple files
...
- Updated comments in various components, schemas, and repositories to remove references to original Dart files.
- Ensured consistency in documentation while maintaining the context of the code.
2026-06-29 11:31:21 +08:00
admin
b7779878cf
feat(chat): unlock history after payment
2026-06-29 10:53:52 +08:00
admin
455204e1e4
feat(chat): add history unlock api
2026-06-26 19:27:56 +08:00
admin
1b73c3ac10
refactor(chat): remove private unlock machine flow
2026-06-26 19:17:29 +08:00
admin
09cbd54c79
fix(chat): release input focus when keyboard closes
2026-06-26 12:01:24 +08:00
admin
fe85af0cd7
fix(chat): queue outgoing messages
2026-06-26 11:11:43 +08:00
admin
949b2ef00d
fix(chat): restore direct voice unlock subscription
2026-06-25 17:18:41 +08:00
admin
ffc3db9a91
fix(chat): add voice unlock payment choices
2026-06-25 14:41:21 +08:00
admin
8d956bc95d
fix(chat): render locked voice messages correctly
2026-06-25 12:04:38 +08:00
admin
f83e04ed6f
fix(chat): hide voice message transcript
2026-06-25 11:26:32 +08:00
admin
cd836cda43
feat(chat): add voice message bubbles
2026-06-25 11:13:25 +08:00
admin
c8f0827e40
fix(subscription): return chat paywalls after payment
2026-06-25 10:20:13 +08:00
admin
583215a99d
fix(chat): route private unlocks to subscription
2026-06-24 19:27:49 +08:00
admin
a987da9bfe
fix(chat): redirect guests before quota upgrade
2026-06-24 18:47:10 +08:00
admin
5aa32a4256
fix(chat): redirect guests to auth before image paywall
2026-06-24 18:41:59 +08:00
admin
c288148c12
fix(chat): remove dynamic upgradeHint for daily limit message
2026-06-24 18:18:21 +08:00
admin
08c954903f
fix(chat): improve in-app keyboard avoidance
2026-06-24 15:13:11 +08:00
admin
853ae776f9
fix(chat): adapt input bar to soft keyboard in FB in-app browser
...
FB IAB on Xiaomi (and similar WebViews that don't shrink 100dvh) keeps
the chat input covered by the soft keyboard. Fix by writing the
visualViewport-derived keyboard height to a CSS variable on <html> and
consuming it as padding-bottom on the chat input bar.
- Add useKeyboardHeight hook (visualViewport + rAF batching, no re-renders)
- Apply --keyboard-height + env(safe-area-inset-bottom) to .bar padding
- Add scrollIntoView on textarea focus so the input stays visible
- Add viewportFit: cover so safe-area-inset-bottom is reported
2026-06-24 14:13:18 +08:00
admin
42c03f8901
feat(chat): migrate chat protocol to lock detail
2026-06-24 14:06:30 +08:00
admin
6180a8a515
feat(chat): blur locked image previews
2026-06-24 11:53:20 +08:00
admin
3e766a0ecd
fix(chat): preserve private send response fields
2026-06-24 11:02:15 +08:00
admin
f80b5215a9
feat(chat): log websocket traffic
2026-06-24 10:48:36 +08:00
admin
bfbf7ee91a
feat(app): improve payment and paywall UX
2026-06-24 10:02:22 +08:00
admin
a47038c46f
fix(payment): guard ezpay redirect persistence
2026-06-23 17:59:16 +08:00
admin
05821d9a29
fix(chat): prompt guests to log in at quota limit
2026-06-23 17:41:07 +08:00
admin
f14b8a48d2
fix(chat): handle guest total limit
2026-06-23 15:14:17 +08:00
admin
ebd44c4980
feat(chat): add private message unlock flow
2026-06-23 13:21:57 +08:00
admin
6bcc070ba1
refactor(chat): rely on server message limits
2026-06-23 11:20:48 +08:00
admin
d81abd6efd
feat(chat): support ai photo viewing
2026-06-23 10:34:02 +08:00
admin
cebc8f7443
feat(chat): expand empty input actions
2026-06-22 19:14:27 +08:00
admin
9a65f2f9ad
feat(chat): toggle send button icon by input content
2026-06-22 18:58:57 +08:00
admin
41b9a49c74
copy(chat): update input placeholder
2026-06-22 18:48:36 +08:00
admin
61fd4ca916
feat(chat): handle daily message paywall
2026-06-22 10:46:17 +08:00
admin
5bf98e9452
feat(subscription): support Stripe payment element
2026-06-18 18:03:36 +08:00
admin
7354afe93d
refactor(ui): extract auth and avatar components
2026-06-18 17:14:02 +08:00
admin
e2a89ef063
style(chat): align external browser dialog
2026-06-18 14:30:59 +08:00
admin
cf54bc742d
fix(chat): limit external browser prompt daily
2026-06-18 14:23:31 +08:00
admin
d190de4dda
refactor(api): use dto barrel imports
2026-06-18 14:16:00 +08:00
admin
812a3e41b9
refactor(logging): centralize console output
2026-06-18 13:34:19 +08:00
admin
f600e11d55
refactor(auth): centralize login status sync
2026-06-18 12:52:49 +08:00