admin
cc065f7781
fix(sidebar): adjust padding for user slot
2026-06-25 10:21:52 +08:00
admin
c8f0827e40
fix(subscription): return chat paywalls after payment
2026-06-25 10:20:13 +08:00
admin
9555a173b5
fix(subscription): adjust padding and margin for card layout
2026-06-25 10:06:55 +08:00
admin
583215a99d
fix(chat): route private unlocks to subscription
2026-06-24 19:27:49 +08:00
admin
568808ed39
fix(auth): read redirect on client
2026-06-24 18:57:12 +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
2d3cb0538c
fix(styles): adjust padding and remove margin for title in voice package card
2026-06-24 18:08:25 +08:00
admin
bc2046fcc6
fix(styles): increase font size for used and total numbers for better visibility
2026-06-24 17:57:17 +08:00
admin
7701c5dbca
fix(styles): adjust padding and font sizes for improved layout consistency
2026-06-24 17:55:48 +08:00
admin
d6e411c8ef
fix(subscription): update font sizes and padding for better consistency
2026-06-24 17:12:38 +08:00
admin
bb99fa592b
fix(subscription): refine plan price display
2026-06-24 17:11:37 +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
c280a3c1ea
chore(app): add lan dev script
2026-06-24 12:05:27 +08:00
admin
6180a8a515
feat(chat): blur locked image previews
2026-06-24 11:53:20 +08:00
admin
57e4add7a4
style(sidebar): refine action buttons
2026-06-24 11:35:15 +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
9874cadb49
style(subscription): limit visible plan cards
2026-06-23 17:40:50 +08:00
admin
3e148f5c0d
style(subscription): update payment section spacing
2026-06-23 16:55:34 +08:00
admin
b40e6476bf
refactor(subscription): move subscription helper functions to a separate file
2026-06-23 16:13:01 +08:00
admin
a26dbec873
style(subscription): adjust agreement label font size to 12px
2026-06-23 15:48:27 +08:00
admin
24e52d6ead
fix(payment): support updated plan pricing fields
2026-06-23 15:47:09 +08:00
admin
c5eca65303
style(subscription): adjust back button spacing
2026-06-23 15:28:29 +08:00
admin
f14b8a48d2
fix(chat): handle guest total limit
2026-06-23 15:14:17 +08:00
admin
cb7087f8ad
chore(chat): add mock fixtures
2026-06-23 14:54:24 +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
e68cabdc54
fix(payment): confirm ezpay redirect before opening
2026-06-22 18:59:01 +08:00
admin
9a65f2f9ad
feat(chat): toggle send button icon by input content
2026-06-22 18:58:57 +08:00
admin
031bad376f
fix(subscription): increase EZPAY development redirect delay to 10 seconds
2026-06-22 18:53:49 +08:00
admin
41b9a49c74
copy(chat): update input placeholder
2026-06-22 18:48:36 +08:00
admin
9a3c8f0d12
fix(payment): allow renewing active subscriptions
2026-06-22 18:48:21 +08:00
admin
2cfbaba058
fix(payment): resume ezpay orders only after return
2026-06-22 18:23:59 +08:00
admin
0b8bae5e5f
fix(payment): enable ezpay debug delay outside production
2026-06-22 18:10:27 +08:00
admin
dd95dd8a26
chore(payment): update ezpay dev redirect notice
2026-06-22 17:37:53 +08:00
admin
21b9954351
feat(payment): restore ezpay return orders
2026-06-22 17:31:04 +08:00
admin
890c955712
fix(payment): support ezpay cashier urls
2026-06-22 16:35:06 +08:00
admin
5ed43a37ce
feat(subscription): add payment channel selector
2026-06-22 16:14:34 +08:00
admin
ec8c559a19
style(sidebar): refine membership cards
2026-06-22 15:46:48 +08:00
admin
b105ba3457
style(sidebar): update voice package icon
2026-06-22 14:58:50 +08:00
admin
375091e828
fix(subscription): prefer Stripe payment dialog
2026-06-22 14:06:46 +08:00