Commit graph

763 commits

Author SHA1 Message Date
Lim Chee Aun
a87b95ed18 Restyle settings sheet 2023-01-17 17:58:04 +08:00
Lim Chee Aun
d0880f5c56 Link to status page instead 2023-01-17 16:18:24 +08:00
Lim Chee Aun
cf0cf27283 Embrace the web's a:visited 2023-01-17 13:37:48 +08:00
Lim Chee Aun
e382cad22a Enable Boosts Carousel by default
Fix the logic here
2023-01-17 10:06:19 +08:00
Lim Chee Aun
8834c03d7a Need to cancel the debounce 2023-01-17 08:56:13 +08:00
Lim Chee Aun
76aeff47ae Test expand boosts carousel to almost full-width for large screens 2023-01-17 00:56:13 +08:00
Lim Chee Aun
f7cbf238b1 Shift+j/k shortcut to skip posts in Boosts Carousel 2023-01-16 21:26:33 +08:00
Lim Chee Aun
58cefc2853 Also activate boosts carousel for serial boosts 2023-01-16 20:50:03 +08:00
Lim Chee Aun
dc25c52e07 Back to left side 2023-01-16 20:49:26 +08:00
Lim Chee Aun
d7d9d9f0a2 Don't store scroll position while in loading state 2023-01-16 20:32:51 +08:00
Lim Chee Aun
62a3ba7c5f Bug fixes for boosts carousel + scrolling 2023-01-16 20:32:30 +08:00
Lim Chee Aun
6e72601833 Compose now supports paste/drag-drop files 2023-01-16 09:42:44 +08:00
Lim Chee Aun
a5e2c30400 Don't need to fade the numbers out 2023-01-15 01:20:35 +08:00
Lim Chee Aun
0f5764580b Fix bug due to votersCount can be null if multiple=false 2023-01-15 00:17:07 +08:00
Lim Chee Aun
f00cb82b2c Maybe this is enough, then let autoprefixer handle this 2023-01-14 23:03:56 +08:00
Lim Chee Aun
8c0078ddd8 It's time for hairline width 2023-01-14 22:27:02 +08:00
Lim Chee Aun
0f4f1505ad More purple please 2023-01-14 22:17:47 +08:00
Lim Chee Aun
68b6cb869e No need these console logs anymore 2023-01-14 22:05:38 +08:00
Lim Chee Aun
b8b8cc57cd Try rotate3d instead
Got to squeeze out that GPU power yo
2023-01-14 20:22:41 +08:00
Lim Chee Aun
0dcccd1e57 Fix scroll direction stopped working
s/up/start s/down/end
2023-01-14 20:16:13 +08:00
Lim Chee Aun
e2139399ee New experiment: Boosts Carousel™️ 2023-01-14 19:42:04 +08:00
Lim Chee Aun
d9096ce831 Make media modal sheet max 2023-01-13 17:23:18 +08:00
Lim Chee Aun
45c107d403 Make leading poll votes more prominent 2023-01-13 15:44:42 +08:00
Lim Chee Aun
1d4c604899 Still too fast 2023-01-13 15:39:10 +08:00
Lim Chee Aun
71b50382e9 New feature: Unsent Drafts
For now, this only works for unsent unsaved drafts e.g. the browser kill the page without giving the user the chance to discard
2023-01-13 15:30:09 +08:00
Lim Chee Aun
f106036072 Rotate the poll to look more like what we see 2023-01-13 00:20:36 +08:00
Lim Chee Aun
542c26dce5 Default tab size is too large (8) 2023-01-12 19:28:50 +08:00
Lim Chee Aun
7ac7965ea3 Also avoid :active bubbling for buttons 2023-01-12 19:28:37 +08:00
Lim Chee Aun
dfaec0605a Can re-use the UID as new window target name! 2023-01-11 23:23:49 +08:00
Lim Chee Aun
e2b6f2df6a Auto-threadify when open a status page with context 2023-01-11 17:45:37 +08:00
Lim Chee Aun
162fc7ad07 Pass UID across composer popups 2023-01-11 17:07:47 +08:00
Lim Chee Aun
adcea89a25 Add UID as Idempotency key 2023-01-11 14:44:20 +08:00
Lim Chee Aun
a421406a11 DRY get current Account 2023-01-11 13:28:42 +08:00
Lim Chee Aun
cda16b1da6 720deg is too fast 😂 2023-01-11 11:16:32 +08:00
Lim Chee Aun
d6c0f83c15 Remove iconify-icon web component, bundle all icons
The whole iconify thing is about 20KB (8KB min-gzip), it's too huge just for icons.

Instead of getting icons from the API/CDN, bundle them all in.
2023-01-11 09:47:46 +08:00
Lim Chee Aun
affc977f42 Need this width 2023-01-11 01:11:13 +08:00
Lim Chee Aun
57d0e0cb77 Prevent horizontal scroll 2023-01-11 01:08:18 +08:00
Lim Chee Aun
292f337a44 Yes, never forget the reblogs 2023-01-10 22:58:54 +08:00
Lim Chee Aun
9338c6905d Try another spoiler effect 2023-01-10 22:10:29 +08:00
Lim Chee Aun
9faf730e82 Handle accept/reject follow requests for locked accounts 2023-01-10 21:49:23 +08:00
Lim Chee Aun
021d2aa2ae Feather spins 2023-01-10 21:03:36 +08:00
Lim Chee Aun
6319bfb580 Forgot the dark mode color 2023-01-10 20:58:30 +08:00
Lim Chee Aun
9743da1e9b Fix cached statuses gone 2023-01-10 20:05:47 +08:00
Lim Chee Aun
c4236e6de7 New feature: thread numbering 2023-01-10 19:59:02 +08:00
Lim Chee Aun
53f70e68f7 Need better distancing 2023-01-10 16:37:34 +08:00
Lim Chee Aun
2bed0c7f03 Add Experimental scroll to top button for status page 2023-01-10 10:44:16 +08:00
Lim Chee Aun
1727475336 Reduce more code for scrolling logic
- Move from sessionStorage to in-memory for statuses cache
- Remove userInitiated, it's getting hard to differentiate between user-initiated and non-user-initiated. Probably better done from the route side instead of only stuck to this component's state
2023-01-10 01:31:38 +08:00
Lim Chee Aun
c4bba6e507 Slight change in poll styles 2023-01-09 23:44:24 +08:00
Lim Chee Aun
a1401e0b69 Active style when click on media 2023-01-09 23:44:02 +08:00
Lim Chee Aun
7f5214c8c6 Need a way to refresh status page on-demand 2023-01-09 21:51:30 +08:00
Lim Chee Aun
13c3b8fa3b Finally DRY this saving status code 2023-01-09 19:11:34 +08:00
Lim Chee Aun
522dd08925 Remove unused imports 2023-01-09 17:05:42 +08:00
Lim Chee Aun
cab06ae936 Further simplify the scrolling logic in Status page
Previous code is too darn complicated and doesn't work in async cases
e.g. user scrolled while the status is loading
2023-01-09 16:56:16 +08:00
Lim Chee Aun
3506285176 Better ID for media attachments
The `i` persists for other attachments too. Not good.
2023-01-09 14:33:47 +08:00
Lim Chee Aun
8a8dad12c8 Better handling of audio 2023-01-09 01:17:16 +08:00
Lim Chee Aun
600edbee5d Might as well make my own link open up the Account modal 2023-01-07 21:43:56 +08:00
Lim Chee Aun
5b90ab46a8 Make it more hearty 2023-01-07 21:37:16 +08:00
Lim Chee Aun
c252667ce4 Make updates button drop faster 2023-01-07 21:03:01 +08:00
Lim Chee Aun
54a95363f0 Use console.debug 2023-01-07 21:02:46 +08:00
Lim Chee Aun
33176c5ea7 Have a little fun with CSS variables X JS 2023-01-07 20:38:05 +08:00
Lim Chee Aun
41df88e625 Perf fixes
Turns out, adding an object to states.statuses proxyMap object, re-render ALL statuses
2023-01-07 20:26:23 +08:00
Lim Chee Aun
862107f2e6 Few styling changes to card etc 2023-01-07 20:25:13 +08:00
Lim Chee Aun
ee9bfe6331 Lots of tiny adjustments 2023-01-07 14:45:04 +08:00
Lim Chee Aun
aab9a475e8 Fix text alignment in small card
It's confusing when status can be small/large and card can small/large too
2023-01-07 11:52:23 +08:00
Lim Chee Aun
ba1674b846 Temporarily disable this
This is affecting the default scrollTop position of the status
2023-01-07 11:46:30 +08:00
Lim Chee Aun
096712a9dd No lazy loading when loading in the carousel 2023-01-06 22:08:22 +08:00
Lim Chee Aun
ac557e1271 Delete cache in SW before reloading status page
Seems kinda hacky… probably might cause new side effects
2023-01-06 21:29:16 +08:00
Lim Chee Aun
6d893967ec Maybe some videos are short 2023-01-06 19:14:47 +08:00
Lim Chee Aun
ca18ea138a Revert Video rewrite because still doesn't work in Mobile Safari
Works in simulator but not the real iPhone
2023-01-06 19:07:04 +08:00
Lim Chee Aun
5c162d211f Rewrite the <video autoplay> hack for Mobile Safari
- Auto animate when in Status page
- Object-fit contain for GIFs in Status page
- Add GIF label on timeline
2023-01-06 18:25:47 +08:00
Lim Chee Aun
fffc8cc983 Further grouping of notifications 2023-01-06 12:51:53 +08:00
Lim Chee Aun
3ca696dd3d Modals for media attachments in composer
Dedicated editor experience per media attachment
2023-01-06 01:51:39 +08:00
Lim Chee Aun
abe5d02d93 Different logic for relative time 2023-01-05 17:36:43 +08:00
Lim Chee Aun
de45a0f9d5 Update useScroll to check distance in threshold instead of pixels 2023-01-05 15:29:11 +08:00
Lim Chee Aun
599d81f924 Disable card if there's a poll or media attachment
Regardless of the size
2023-01-05 15:28:04 +08:00
Lim Chee Aun
a4b452e177 Switch back to blur effect for spoilers
The SVG filter is too heavy for mobile browsers
2023-01-05 13:30:19 +08:00
Lim Chee Aun
a429da37f4 Don't show card for sensitive/CW content 2023-01-05 13:29:44 +08:00
Lim Chee Aun
04ccf8aca9 Replace @github/relative-time-element with dayjs 2023-01-05 10:50:27 +08:00
Lim Chee Aun
c77ed16804 Even shorter name text 2023-01-05 10:41:25 +08:00
Lim Chee Aun
eef658b758 Slightly higher z-index for updates-button 2023-01-04 19:41:35 +08:00
Lim Chee Aun
edeceba729 Allow people to type essays 2023-01-04 19:16:43 +08:00
Lim Chee Aun
1f12c53ee1 Refactor textarea and chars count meter
It won't re-render on every key press anymore
2023-01-04 19:03:11 +08:00
Lim Chee Aun
fea7145ac9 The mention is hidden *inside* spoiler text 2023-01-04 17:27:43 +08:00
Lim Chee Aun
8e19d098eb Test add this condition to see how it works 2023-01-04 17:12:44 +08:00
Lim Chee Aun
7e869949e2 Turns out, still change CW when editing 2023-01-03 17:41:18 +08:00
Lim Chee Aun
88297fa17e Remove opacity from spoiler content 2023-01-03 15:52:28 +08:00
Lim Chee Aun
5478e407aa For large cards, align the meta left 2023-01-03 15:51:33 +08:00
Lim Chee Aun
a41655698f Disable text selection on some elements 2023-01-03 15:51:16 +08:00
Lim Chee Aun
910120ecd7 When status is small, need more breathing space 2023-01-03 13:52:13 +08:00
Lim Chee Aun
a71f66dcbd Handle locked accounts 2023-01-03 13:25:55 +08:00
Lim Chee Aun
dbfdd6ec68 Add border for card 2023-01-03 13:03:22 +08:00
Lim Chee Aun
b0271c50ae Fix forgot to put back the fake <li> 2023-01-03 00:56:11 +08:00
Lim Chee Aun
dbf9c22ea5 Less obstrusive "New posts" 2023-01-03 00:52:16 +08:00
Lim Chee Aun
72e3d96675 Add more contrast to green 2023-01-03 00:49:05 +08:00
Lim Chee Aun
d15b1fe03e Fix route() actually not working 2023-01-03 00:48:36 +08:00
Lim Chee Aun
e4de6d1d22 Don't need to focus on status after closing carousel
It causes unnecessary scroll
2023-01-03 00:48:16 +08:00
Lim Chee Aun
8d609e14a6 This subtle press-down effect starts to annoy me 2023-01-03 00:30:40 +08:00
Lim Chee Aun
9ea941368d More fixes 2023-01-03 00:27:47 +08:00
Lim Chee Aun
d235f56cff Always clear 'new' when load from beginning 2023-01-02 23:19:12 +08:00
Lim Chee Aun
5074716378 Set scroll threshold for up/down
Else it'll be too trippy
2023-01-02 23:16:49 +08:00
Lim Chee Aun
7408d7a5d4 No need opacity 2023-01-02 23:16:21 +08:00
Lim Chee Aun
f8821d530d Maybe these might help a little 2023-01-02 22:02:21 +08:00
Lim Chee Aun
597232067d Not down enough 2023-01-02 21:43:04 +08:00
Lim Chee Aun
39124ccc70 Add experimental scroll-based effects
- Scroll to top = refresh Home
- Scroll up/down = show/hide header and compose button
- Scroll near bottom = load next statuses
- Move Compose button to only at Home instead of 'App' level
2023-01-02 21:36:24 +08:00
Lim Chee Aun
c3aef80ad4 More styles 2023-01-02 15:00:13 +08:00
Lim Chee Aun
44f179a69f Beautify notifications slightly 2023-01-02 14:42:28 +08:00
Lim Chee Aun
07dff34e20 Show formatted duration for video media 2023-01-02 14:21:38 +08:00
Lim Chee Aun
21bdb51cd6 Compose pop-in/out now can work with non-id medias
Commented out for now to see if it really works

The bug is due to valtio proxying the File object
2023-01-02 12:03:06 +08:00
Lim Chee Aun
8099fedf82 Don't store instances list inside JS bundle 2023-01-01 21:02:06 +08:00
Lim Chee Aun
2925afeefc Refetch list of instance URLs
Also bump list to more than 200
2023-01-01 21:00:43 +08:00
Lim Chee Aun
727b944f3b toLowerCase() all the instance URLs! 2023-01-01 20:59:55 +08:00
Lim Chee Aun
bfaefbe178 Disable autocapitalize on input field
And disable a bunch of others too
2023-01-01 20:53:40 +08:00
Lim Chee Aun
0d92f65f7e Esc for compose field 2023-01-01 19:41:42 +08:00
Lim Chee Aun
d2d8571b3f Fix updates button got cut off in larger viewport 2023-01-01 19:24:08 +08:00
Lim Chee Aun
151f0875ad Upgrade relative-time-elements
They've renamed the package name
2023-01-01 18:14:35 +08:00
Lim Chee Aun
0517690ed3 Spruce up the compose button 2023-01-01 17:19:20 +08:00
Lim Chee Aun
b62cff4d0e Different gradient for welcome 2023-01-01 17:19:07 +08:00
Lim Chee Aun
4d7aeca10f Make skeleton unpointerable 2023-01-01 16:09:10 +08:00
Lim Chee Aun
6306ed9602 Move updates button further down 2023-01-01 16:02:15 +08:00
Lim Chee Aun
c116de8456 Don't show card when status is truncated 2023-01-01 16:01:57 +08:00
Lim Chee Aun
811de6ec0a Remove that one tiny white space at the bottom of the avatar image 2023-01-01 16:01:44 +08:00
Lim Chee Aun
cf1c03f55f Delay focus compose field a little 2023-01-01 15:32:36 +08:00
Lim Chee Aun
2031e88d87 Better handling of failures
Some mastodon instances are getting hit hard
2023-01-01 15:28:07 +08:00
Lim Chee Aun
951c93a070 Add link to media in carousel modal 2023-01-01 12:28:54 +08:00
Lim Chee Aun
842db90f9c Handle context API call fail error 2023-01-01 12:02:11 +08:00
Lim Chee Aun
4e80e9e0cb Debounce new statuses 2023-01-01 12:01:54 +08:00
Lim Chee Aun
b153d7526c Add even more spacing 2023-01-01 12:01:39 +08:00
Lim Chee Aun
5e52874aa5 Use v1 instance api
v2 is too new, only added for Mastodon v4
2023-01-01 10:59:20 +08:00
Lim Chee Aun
07163f0c3f Fix layout bug with routes
At this point, it feels like I'm writing my own react-router
2023-01-01 09:18:11 +08:00
Lim Chee Aun
ac91dc7983 Make this manual opt-in 2023-01-01 08:51:56 +08:00
Lim Chee Aun
e22e50705f Move things around 2023-01-01 01:46:08 +08:00
Lim Chee Aun
d46a1e8b38 Set min height for timeline 2023-01-01 00:50:48 +08:00
Lim Chee Aun
895602e446 Gosh this need to be low threshold
It's actually % of the full height of the element. So if the status is super long (100K chars), it'll never be 0.25
2022-12-31 23:58:48 +08:00
Lim Chee Aun
f9e1704727 Disable this hover effect for large status
Will still animate in timeline but at least not as distracting
2022-12-31 20:18:56 +08:00
Lim Chee Aun
b12b0c588d Experimental j,k,o,esc,backspace shortcuts 2022-12-31 09:52:31 +08:00
Lim Chee Aun
36a33e488b Use focus-visible 2022-12-31 09:51:59 +08:00
Lim Chee Aun
52d5756d44 Remove unused code 2022-12-31 09:51:28 +08:00
Lim Chee Aun
2c970f635a Make focus ring nicer 2022-12-30 23:09:25 +08:00
Lim Chee Aun
c0234dd26e Add focus for notification block too 2022-12-30 23:08:55 +08:00
Lim Chee Aun
724be17d3e Basic keyboard shortcuts
Esc for carousel modal, Ctrl/Cmd+Enter for Compose field
2022-12-30 21:36:14 +08:00
Lim Chee Aun
d605fc6ebe Fix missing border 2022-12-30 20:39:27 +08:00
Lim Chee Aun
9201f7a118 First step in making things focusable 2022-12-30 20:37:57 +08:00
Lim Chee Aun
30c529fe02 No opacity for sheet animation
Move things around a bit
2022-12-30 13:55:46 +08:00
Lim Chee Aun
a409ff6712 Some images are just… too high 2022-12-30 13:37:59 +08:00
Lim Chee Aun
123d2469f6 Don't show hero pointer when loading 2022-12-30 13:26:05 +08:00
Lim Chee Aun
167399f889 Subtle press state 2022-12-30 11:03:03 +08:00
Lim Chee Aun
3338c49c25 Fix threshold for larger-than-viewport statuses 2022-12-29 16:15:58 +08:00
Lim Chee Aun
6ffc40fdf3 Use semantic <article> 2022-12-29 16:12:09 +08:00
Lim Chee Aun
5804ddbdb9 Add all the focuses 2022-12-29 16:11:58 +08:00
Lim Chee Aun
bdcefb1ab0 Add a nice pointer 2022-12-29 11:47:10 +08:00
Lim Chee Aun
160b535552 Not all cards work in large size
Check the image aspect ratio before converting to large size
2022-12-29 11:34:29 +08:00
Lim Chee Aun
808d56432e Use sinceId for new checks 2022-12-29 10:45:47 +08:00
Lim Chee Aun
353c911232 Temporarily disable this now 2022-12-29 10:27:36 +08:00
Lim Chee Aun
a6196f923f Better styles for card
Show large card for large status, but only when there's no poll and media
2022-12-29 08:57:01 +08:00
Lim Chee Aun
afb1a75f69 Show carousel controls initially 2022-12-28 20:46:38 +08:00
Lim Chee Aun
c205a43125 Try this fancy touch-action 2022-12-28 20:38:16 +08:00
Lim Chee Aun
e32c6c6473 Revert "Delay onClose after swipe"
This reverts commit 0feee7ea93.
2022-12-28 20:35:49 +08:00
Lim Chee Aun
0feee7ea93 Delay onClose after swipe 2022-12-28 20:02:28 +08:00
Lim Chee Aun
7200acc2a7 Swipe down for closing carousel 2022-12-28 19:43:02 +08:00
Lim Chee Aun
86df9fd9f8 Tap media to toggle carousel controls 2022-12-28 19:31:08 +08:00
Lim Chee Aun
7e3733d79e Delay hero status fetch if already cached
The context call is more important
2022-12-28 18:06:05 +08:00
Lim Chee Aun
02c464a139 Delay showing "status posted" toast 2022-12-28 18:05:22 +08:00
Lim Chee Aun
44617cffca Make sure bottom toast respect safe area 2022-12-28 18:04:58 +08:00
Lim Chee Aun
422a924844 Make GIF autoplay on Mobile Safari
Only in carousel, and seems like `autoplay` with `muted` ain't working in (P)react.
2022-12-28 14:47:39 +08:00
Lim Chee Aun
23a6cdbe3b Fix video alignment 2022-12-28 14:43:58 +08:00
Lim Chee Aun
5869ec3b9f Move "Read more" slightly to the left 2022-12-28 10:52:08 +08:00
Lim Chee Aun
fa0ccece32 Handle > 4 medias
- Mastodon now doesn't allow >4, so this is for the future or maybe the forks.
- Using grid for better control on how images lay out
2022-12-28 10:51:57 +08:00
Lim Chee Aun
8b6cae5611 More gradients for headers 2022-12-28 10:49:43 +08:00
Lim Chee Aun
2dca345818 More breathing space after the negative top margin hack 2022-12-28 00:24:36 +08:00
Lim Chee Aun
abb7f11c12 Fix danger appearing for "Follow" too 😆 2022-12-28 00:15:27 +08:00
Lim Chee Aun
e8a0b401f9 Add safe fallback 2022-12-27 22:02:55 +08:00
Lim Chee Aun
e7cff25337 Fix wrong logic for silent fail
Some mastodon instances are getting swamped
2022-12-27 21:30:18 +08:00
Lim Chee Aun
03ae42ab17 Possible fix for #35 2022-12-27 19:12:36 +08:00
Lim Chee Aun
cf42aab4b7 Experimental language selector in Compose field 2022-12-27 18:09:23 +08:00
Lim Chee Aun
43e0f51bcf Add bot indicator 2022-12-27 18:09:07 +08:00
Lim Chee Aun
1bb547e1a3 Use box-shadow, border skews the actual dimension 2022-12-27 11:00:05 +08:00
Lim Chee Aun
c006a791b9 Comment out log 2022-12-27 09:05:54 +08:00
Lim Chee Aun
fb88129ae7 Check for ref before access scrollTop 2022-12-27 09:05:45 +08:00
Lim Chee Aun
f7489710a1 Temporary fix for corrupted data 2022-12-27 08:52:01 +08:00
Lim Chee Aun
04ff8eca4c Make modal backdrop appear nicely
I probably created too many similar keyframes
2022-12-27 01:44:41 +08:00
Lim Chee Aun
3ac2a45244 Got trolled by @neet 2022-12-27 01:17:04 +08:00
Lim Chee Aun
eb3880b435 Handle errors here 2022-12-27 01:07:33 +08:00
Lim Chee Aun
d981a31a10 Fix serious BUG
v1 uses `uri`, v2 uses `domain`
2022-12-26 23:44:18 +08:00
Lim Chee Aun
ccb0032f81 Fix displayName don't need to be encoded 2022-12-26 21:19:10 +08:00
Lim Chee Aun
af437ae4c8 Image vertical alignment is always a pain 2022-12-26 20:39:49 +08:00
Lim Chee Aun
7fca59782e Make donut meter work on Safari 2022-12-26 20:34:24 +08:00
Lim Chee Aun
e96cc9cc16 Fix snakecase not working in Compose pop-out 2022-12-26 20:22:13 +08:00
Lim Chee Aun
b25b54b79e Silent fail for custom emojis fetch 2022-12-26 20:21:16 +08:00
Lim Chee Aun
e320a5be4a pre-wrap for code blocks 2022-12-26 18:05:00 +08:00
Lim Chee Aun
334584ecef Fix HTML inside code blocks being rendered 2022-12-26 18:04:49 +08:00
Lim Chee Aun
082a04c30c Maybe visibilityState is more reliable 2022-12-26 17:39:20 +08:00
Lim Chee Aun
be656d585a Make boosts shorter 2022-12-26 14:33:46 +08:00
Lim Chee Aun
f1ca52d561 Button text swapper for Unfollow button 2022-12-26 14:29:57 +08:00
Lim Chee Aun
6b41666efe It's time to toast 🥂 2022-12-26 14:02:05 +08:00
Lim Chee Aun
6da4834b71 Change back to limit 1
Sometimes, there's really just one new status update.
2022-12-26 01:09:53 +08:00
Lim Chee Aun
9278645069 Another attempt at fixing GIF not autoplaying on Mobile Safari 2022-12-26 01:09:19 +08:00
Lim Chee Aun
c8ea2e8703 Restyle cards
Got to max-height it, and then make sure the images crop smaller
2022-12-26 00:43:17 +08:00
Lim Chee Aun
c75bf36345 Try dblclick for reloading
Not sure if this'll work on touch-based devices. Also good for debugging.
2022-12-25 23:53:18 +08:00
Lim Chee Aun
01963c9d7a Try different heart animation 2022-12-25 23:51:17 +08:00
Lim Chee Aun
641bccd685 Prettier decided to prettify this 2022-12-25 23:33:59 +08:00
Lim Chee Aun
86f38ee3b8 Fix Account sheet relationship check not working when clicking from Settings page
This is because accounts from different instances have different IDs!

They're NOT unique cross-instance. So while on one instance, cannot use the account ID of the other instance to query for relationship because the ID doesn't exist on *current* instance.
2022-12-25 23:31:50 +08:00
Lim Chee Aun
3daa7e4f9d Fix poll showing NaN when total votes = 0
So 0/0 = NaN
2022-12-25 23:29:25 +08:00
Lim Chee Aun
318c2aeffc Upgrade masto.js to V5
- Fix all breaking changes
- Have to manual remove null/undefined values before creating statuses
- Have to recreate iterator instance if start from scratch because can't pass args in next()
2022-12-25 23:28:55 +08:00
Lim Chee Aun
cf4fbc8553 Make sheet have header and body section 2022-12-25 18:01:01 +08:00
Lim Chee Aun
0276820185 Fix className typo 2022-12-25 15:49:39 +08:00
Lim Chee Aun
cff13d53f0 Forgot to revert the optimistism 2022-12-25 13:22:41 +08:00
Lim Chee Aun
e4116cf9e6 Don't need left border in small screen 2022-12-24 23:17:13 +08:00
Lim Chee Aun
05fd9bdd2c Make spoiler effect work in dark mode 2022-12-24 22:52:19 +08:00
Lim Chee Aun
ec67811823 Smart status heading + tap to scroll to hero status
I'll probably need to componentize relative-time, it's getting not DRY
2022-12-24 22:26:43 +08:00
Lim Chee Aun
17ac9cc2c6 Seems like these have special URL treatments too 2022-12-24 21:14:05 +08:00
Lim Chee Aun
966e8b9cb7 Better backdrop 2022-12-24 17:54:58 +08:00
Lim Chee Aun
8eec844781 Scroll-to-top for Notifications 2022-12-24 17:54:42 +08:00
Lim Chee Aun
c6b9e3fc78 New spoiler filter 2022-12-24 16:51:19 +08:00
Lim Chee Aun
d6421972df Reduce spacing at the top of the thread badge 2022-12-24 14:15:47 +08:00
Lim Chee Aun
c4efc26d62 Attempt to fix video not autoplaying on Mobile Safari 2022-12-24 14:15:34 +08:00
Lim Chee Aun
42fa30d8f8 Move the onVisibilityChange API check to app.jsx
Doesn't make sense to make it part of Home. Also add in Notifications check.
2022-12-24 10:26:05 +08:00
Lim Chee Aun
71514312bf Should be OR
A short video can be treated as GIF.
Loopability is only for <= 60 second video
2022-12-24 10:23:06 +08:00
Lim Chee Aun
b96f263f69 Make "Unfollow" button look dangerous
Also add ellipsis
2022-12-24 10:05:01 +08:00
Lim Chee Aun
55ad4be580 Only show reply badge if not inside mentions 2022-12-24 01:22:25 +08:00
Lim Chee Aun
f8fac1294b Fixes & adjustments to statuses in Status page 2022-12-24 01:11:11 +08:00
Lim Chee Aun
dd99d186bf Add one more case for scrolling 2022-12-23 23:42:41 +08:00
Lim Chee Aun
87f197fc88 Possible fix for #24 2022-12-23 21:28:16 +08:00
Lim Chee Aun
fcd29d4bdc Aesthetic changes
- Icon change for "Unlisted"
- Dynamic text size for compose field depending on char count
2022-12-23 21:25:01 +08:00
Lim Chee Aun
2def939821 Fix textarea focus not working 2022-12-23 19:33:51 +08:00
Lim Chee Aun
ea0352e51a Maybe need this 2022-12-23 19:33:06 +08:00
Lim Chee Aun
13a347ce37 New: char count for Compose field
Uses pre-compiled regex for perf
2022-12-23 16:45:02 +08:00
Lim Chee Aun
a2e55eca90 Make fetches concurrent 2022-12-23 12:30:49 +08:00
Lim Chee Aun
fe78ac5fa0 Fix userInitiated undefined 2022-12-23 12:30:07 +08:00
Lim Chee Aun
d3e3e47527 Fix logic for cached statuses 2022-12-23 11:28:25 +08:00
Lim Chee Aun
31e2196cd6 Safeguard for unknown HTML cases in status content
1. Mark up code blocks first because anything inside code blocks cannot be "enhanced".
2. Set default rejects for elements that don't need to be "enhanced". Not a complete list but best-effort. Probably allowlist works better than blocklist, but some content doesn't even start with any parent nodes.
2022-12-23 09:20:34 +08:00
Lim Chee Aun
206d40c0a4 Snap stop need to be the children, not parent 2022-12-23 09:17:41 +08:00
Lim Chee Aun
374b8d97d5 Fix some scrolling and snaps 2022-12-23 08:00:11 +08:00
Lim Chee Aun
1c98433333 Linkify twitter usernames
This is due to some folks cross-posting from Twitter.
2022-12-23 00:40:25 +08:00
Lim Chee Aun
7e84088d67 Handle case when too many sub-comments
For now, encourage clicking on status to see more replies instead of expanding the sub-comments
Feels "wasted" since the comments are already loaded but it's just too much scrolling

Also auto-open if the sub-comments are not a lot.
2022-12-23 00:30:55 +08:00
Lim Chee Aun
5944b4fe30 Don't remove status immediately
It'll be too abrupt. Set `_deleted` flag for now, no UI yet.
2022-12-22 22:43:04 +08:00
Lim Chee Aun
37c44c2264 Update poll at point of expiry 2022-12-22 21:52:59 +08:00
Lim Chee Aun
de409bd668 Fix empty statuses when (pre)loading homeNew 2022-12-22 21:38:43 +08:00
Lim Chee Aun
79d6fd02b8 The tap highlight color can get very distracting 2022-12-22 19:44:22 +08:00
Lim Chee Aun
263e48d019 New feature: :shortcode: expander in compose field
Using `innerHTML` because easier to code but the `encodeHTML` function is troublesome
2022-12-22 19:24:07 +08:00
Lim Chee Aun
122f6877c9 Fix some accounts not working
All these webfinger/custom-server/moving-instances things are very annoying
2022-12-22 18:25:18 +08:00
Lim Chee Aun
7b6d30f37d Limit iterations for image hover position animation 2022-12-22 15:08:37 +08:00
Lim Chee Aun
65c2fb3648 Special rounding precision for poll percentage 2022-12-22 14:59:36 +08:00
Lim Chee Aun
c3bbd04e77 Different way of shifting the pixels 2022-12-22 12:59:44 +08:00
Lim Chee Aun
9d8286234f Fix the 'thread' badge being jumpy 2022-12-22 12:14:01 +08:00
Lim Chee Aun
90f1a9e529 Add text-side-adjust 2022-12-22 11:24:17 +08:00
Lim Chee Aun
3c4c59106a Handle media > 2 taking a lot of vertical space
Also handle media > 4, which I think some instances probably allow
2022-12-22 10:47:45 +08:00
Lim Chee Aun
ade3ebb5ae Experiment: new reply/thread "badges"
Also totally forced one-lined the name text + date at the top of a status
2022-12-22 10:35:39 +08:00
Lim Chee Aun
9a0f538d69 username = displayName matching, minus the shortcodes 2022-12-22 10:32:27 +08:00
Lim Chee Aun
4e60cae42c Fix spoiler bug 2022-12-22 09:02:22 +08:00
Lim Chee Aun
6c0aedcd3e Fix new posts check not working 2022-12-22 08:39:01 +08:00
Lim Chee Aun
c828f53f09 Lame fix for Flash of Welcome Page (FoWP)
useEffect runs after mounted so Welcome component appears for a split second
2022-12-21 20:34:24 +08:00
Lim Chee Aun
eba78e3f07 Time to embrace sheets
.box class is just… weird…
2022-12-21 20:00:45 +08:00
Lim Chee Aun
71083b46e2 Add "Refresh" button for polls 2022-12-21 19:46:38 +08:00
Lim Chee Aun
23745d0683 Update poll reactively 2022-12-21 19:29:37 +08:00
Lim Chee Aun
3b6f0f277e Rewrite whole scroll logic for Status page
Handle 3 cases, all written down in comments.

Crossing my fingers 🤞🤞🤞
2022-12-21 18:02:13 +08:00
Lim Chee Aun
237ceae356 Visual indicator that it tries to get new updates
Probably too subtle. Loader also only appears after 1s delay 😆
2022-12-21 08:54:39 +08:00
Lim Chee Aun
becb8aa89d Emphasize mentions on notifications 2022-12-21 08:48:11 +08:00
Lim Chee Aun
3589438556 Fix clash of styles
.status got overriden 😂 (maybe I should scope the CSS or something)
2022-12-21 07:42:48 +08:00
Lim Chee Aun
f6e3c979af Fix onClick not a function 2022-12-21 01:18:37 +08:00
Lim Chee Aun
a9538e6cf0 Beautify log in page a little 2022-12-21 01:04:04 +08:00
Lim Chee Aun
e80e09c398 Need a little padding as breathing space 2022-12-21 01:03:49 +08:00
Lim Chee Aun
33f0f21399 My sense of logic is getting worse 2022-12-21 01:03:24 +08:00
Lim Chee Aun
b7c5dce372 Fix z-indexing bug 2022-12-21 01:03:07 +08:00
Lim Chee Aun
04323f05ff Experimental: caching status + context
Cache all statuses from Status page so that it can load faster when
navigating between statuses. Uses sessionStorage
2022-12-21 01:02:48 +08:00
Lim Chee Aun
3fede678c7 Case-insensitive and don't apply for short:true 2022-12-20 22:00:11 +08:00
Lim Chee Aun
e9e664d871 Spread the timing function 2022-12-20 20:24:10 +08:00
Lim Chee Aun
d6575037eb No popping in standalone mode 2022-12-20 20:23:57 +08:00
Lim Chee Aun
4acb6aa3c2 Subtle badges 2022-12-20 20:17:38 +08:00
Lim Chee Aun
39a5634112 Further shorten name text if displayName === username 2022-12-20 19:52:55 +08:00
Lim Chee Aun
39efda9e38 Track spoilers
Turns out I'm using WeakMap wrong
2022-12-20 19:14:50 +08:00
Lim Chee Aun
091960bdff Fix border not visible for media-video 2022-12-20 17:50:43 +08:00
Lim Chee Aun
8babc97877 Fix status jumping bug
This part is too complex.
The thread can get very fancy and it's impossible to handle all use-cases without a lot of code.
Solution is just fading all of them out while loading.
2022-12-20 15:32:31 +08:00
Lim Chee Aun
c16b7764f2 Fancier transition/animation timing function 2022-12-20 15:13:49 +08:00
Lim Chee Aun
5e687e871f Bring back polling but bump up timeout
- Polling is needed because status post requires the media to be done processing (not just uploaded)
- But the default timeout set in masto.js is 3s, a bit too low if uploading a large video
- Bumping up to 30s
2022-12-20 13:29:38 +08:00
Lim Chee Aun
9bc5340714 Extra check on loading state before allow closing 2022-12-20 13:27:14 +08:00
Lim Chee Aun
e274950324 Disable popping-in/out and closing when loading 2022-12-20 13:26:45 +08:00
Lim Chee Aun
3921f8a6f9 Debugging 2022-12-20 13:24:56 +08:00
Lim Chee Aun
bbec6f2de9 Fix small-height videos too small
When it's too short, the native video player UI is cramped
2022-12-20 13:21:53 +08:00
Lim Chee Aun
1538400dc0 Oops, forgot to put confirm dialog before boosting 2022-12-20 10:09:05 +08:00
Lim Chee Aun
bf907abc17 Disable this small font sizing 2022-12-20 09:37:29 +08:00
Lim Chee Aun
6561f14d8b Menu popover need a little soft shadows 2022-12-20 09:28:12 +08:00
Lim Chee Aun
7d7473da15 Possible quick fix for menu popovers not working on iOS 2022-12-20 09:27:59 +08:00
Lim Chee Aun
75f03cf0eb Make everything inside buttons un-pointer-able
Gets annoying when getting e.target from interacting with buttons
2022-12-20 09:22:26 +08:00
Lim Chee Aun
c116db79cc Have fun with welcome page 2022-12-20 00:16:45 +08:00
Lim Chee Aun
ad2bebec0e Bump notifications limit 2022-12-20 00:11:55 +08:00
Lim Chee Aun
221ef84e4a Smaller font size for updates button 2022-12-19 19:24:51 +08:00
Lim Chee Aun
943c017928 Change from flex to grid, for the header
Flex is just too… flexible, I need something more rigid like grid
2022-12-19 19:24:39 +08:00
Lim Chee Aun
da19e7ad02 This min-width: 0 hack is getting annoying
Without this, long words would overflowwww
2022-12-19 18:02:45 +08:00
Lim Chee Aun
99357dc887 Shorten number for replies count 2022-12-19 17:38:20 +08:00
Lim Chee Aun
509c1d971e Return 0 if no html 2022-12-19 17:30:10 +08:00
Lim Chee Aun
db25770a31 Add "verified" state for profile fields 2022-12-19 17:02:47 +08:00
Lim Chee Aun
d08848fff3 Fix some profile notes don't have <p> 2022-12-19 17:02:01 +08:00
Lim Chee Aun
772c4c7ba9 Remove this, it does weird blends 2022-12-19 16:35:35 +08:00
Lim Chee Aun
4339c4485d Move the comment button down a bit 2022-12-19 16:35:22 +08:00
Lim Chee Aun
8e8ab69528 Make sure the summary button is on top 2022-12-19 16:35:09 +08:00
Lim Chee Aun
9beee6cb37 Revert back to 'X' instead of '<'
It can be confused with the browser back button. It doesn't function as back button as well
2022-12-19 16:25:57 +08:00
Lim Chee Aun
ee360403fd It's time for MVP PWA/ServiceWorker
- Not 100% offline yet, very minimal caching
- Fix logo a little
2022-12-19 14:51:56 +08:00
Lim Chee Aun
8c97dcc5bc 💅 Aesthetic changes 2022-12-19 13:38:16 +08:00
Lim Chee Aun
1826b01103 Make faded link color less faded 2022-12-19 10:06:02 +08:00
Lim Chee Aun
e0ed7daa87 Styling fixes 2022-12-19 10:05:50 +08:00
Lim Chee Aun
681dfaaaff Auto-open details and hide summary button
Only show toggle comments button if there are many statuses
2022-12-19 10:05:27 +08:00
Lim Chee Aun
141f4a94dc Fix "show more" appearing below the faux padding 2022-12-19 10:04:50 +08:00
Lim Chee Aun
0a4898059b Set to 2 2022-12-19 10:04:11 +08:00
Lim Chee Aun
d8e94270ad A little outline for elegance 2022-12-19 00:19:44 +08:00
Lim Chee Aun
9022a3ee12 Fix faux bottom spacer not working 2022-12-19 00:19:34 +08:00
Lim Chee Aun
f110ac6812 Fix flash of un-nested comments 2022-12-19 00:19:19 +08:00
Lim Chee Aun
96a38e5df1 Bigger check for poll option 2022-12-18 23:06:05 +08:00
Lim Chee Aun
c6e71e2432 Smaller gaps between media attachments 2022-12-18 23:05:49 +08:00
Lim Chee Aun
dc37100442 Refactor Carousel 2022-12-18 22:56:00 +08:00
Lim Chee Aun
0b8460cd55 Move things around 2022-12-18 21:10:05 +08:00
Lim Chee Aun
8ba0d15484 Preliminary steps to support safe areas 2022-12-18 21:07:40 +08:00
Lim Chee Aun
a029c7ccae Change from 'x' to '<' on Status page 2022-12-18 20:53:32 +08:00
Lim Chee Aun
2f24713d71 Real nested comments
- Collapsed/expandable replies
- Pagination for many many comments
2022-12-18 20:46:13 +08:00
Lim Chee Aun
9eb40d165f Only snap to top when there are ancestors 2022-12-18 13:43:34 +08:00
Lim Chee Aun
762e525c68 Add profile metadata 2022-12-18 12:21:57 +08:00
Lim Chee Aun
548af18bee Only show "New posts" when more than 1 new post 2022-12-18 11:53:58 +08:00
Lim Chee Aun
03b319a517 Make loading new posts less destructive 2022-12-18 11:53:41 +08:00
Lim Chee Aun
16ae8af889 Replace deprecated methods 2022-12-18 11:52:53 +08:00
Lim Chee Aun
1ffcffa1f4 Try different style for "Read more" 2022-12-18 10:08:44 +08:00
Lim Chee Aun
6e09d5f836 Fix .insignificant class affecting other elements
Remove them because they were used in previous discarded design
2022-12-18 01:14:44 +08:00
Lim Chee Aun
72b0931554 Super lazy way to implement "only mentions" in Notifications
#OnlyMentions

Could have make another tab that makes another request to /notifications but I feel lazy
2022-12-18 01:04:26 +08:00
Lim Chee Aun
4b49c6fb03 Aesthetic changes to Account sheet
- Larger avatar
- Less rounded sheet
- Add Joined date
2022-12-18 00:38:19 +08:00
Lim Chee Aun
7c30ba35e4 Show total count for fun 2022-12-18 00:13:56 +08:00
Lim Chee Aun
d3f7659331 Tabular nums for the numbers 2022-12-18 00:09:22 +08:00
Lim Chee Aun
3a21b58f55 Prevent this from wrapping 2022-12-17 23:17:13 +08:00
Lim Chee Aun
58fe7a46f4 Change from line-clamp to max-height
-webkit-line-clamp doesn't work on multiple <p>s on Mobile Safari
2022-12-17 23:01:34 +08:00
Lim Chee Aun
4bc4742e8c New logo
Just the nose
2022-12-17 21:29:17 +08:00
Lim Chee Aun
400bc6f696 Truncate long posts on timeline, show "Read more"
10-line clamping for now
2022-12-17 21:06:51 +08:00
Lim Chee Aun
734a9b2b76 Remove unused code 2022-12-17 19:51:48 +08:00
Lim Chee Aun
5f0d1e8656 Refactor action buttons + optimistic UI 2022-12-17 17:26:41 +08:00
Lim Chee Aun
1c18184ef4 Fix one-char space inserted when replying to own posts 2022-12-17 17:25:04 +08:00
Lim Chee Aun
d0579a57d6 Fix bug when text nodes contain HTML <>
Text nodes don't escape them
2022-12-17 17:24:26 +08:00
Lim Chee Aun
b9c762cf53 Nudge font size smaller for code 2022-12-17 17:23:31 +08:00
Lim Chee Aun
e6ed64cfd0 Fix auto display: none not working
`this` probably refers to something else
2022-12-17 14:38:21 +08:00
Lim Chee Aun
f896225707 Hmm remove debugging 2022-12-16 13:58:13 +08:00
Lim Chee Aun
e09e1f16cd Somehow removed this window.close code
Bring it back + focus() for opener window
2022-12-16 13:54:17 +08:00
Lim Chee Aun
ec0b76901a Disable this faded out hash character
It's annoying when folks post many many hashtags in a sentence but at the same time I need this to be the "identifier" that it's a link and clickable

As Phanpy doesn't handle hashtag links yet (in itself), this needs to be distinct.
2022-12-16 13:30:07 +08:00
Lim Chee Aun
665b908698 Put names into every export 2022-12-16 13:27:04 +08:00
Lim Chee Aun
c026635221 Try this 50% width for card image
It's tough trying to balance the space required by the image vs the card title/desc/etc
2022-12-16 13:26:38 +08:00
Lim Chee Aun
3ae82d6898 Handle "unknown" media
On mastodon.social, images have type:image, but hachyderm returns type:unknown

Found this when editing a post and add two images, on mastodon.social.
2022-12-16 09:20:30 +08:00
Lim Chee Aun
7762c5b6a7 Yeah, this depends on the header height 2022-12-16 01:44:51 +08:00
Lim Chee Aun
715791f41e Try disable this less-bright images fancy CSS for dark mode
Copied from webkit blog but I guess this is a bit fancy

Also possibly conflicting with other styles
2022-12-16 01:37:19 +08:00
Lim Chee Aun
5148462670 Have a little fun with action icons' animations
Also fix the jumpy border
2022-12-16 01:28:22 +08:00
Lim Chee Aun
9717b94468 Smaller header for small screen 2022-12-16 00:57:21 +08:00
Lim Chee Aun
db1e481bd3 Ugh have to manual trigger onInput
Is there a way to just auto trigger this?
2022-12-16 00:54:44 +08:00
Lim Chee Aun
03d2e2aa72 Add TODO for now for handling multiple mentions
If it's just all mentions with no textual content = can close(?)
But if there're a lot of mentions, won't it be dangerous to close?
User can still edit whatever in between like rearranging the mentions etc
2022-12-16 00:53:04 +08:00
Lim Chee Aun
859500a292 Fix copy since it's not just replying to one person 2022-12-16 00:51:08 +08:00
Lim Chee Aun
a41b18b331 Fix auto-prepending mentions when replying
Prepend not just the reply-to status's acct, but also all mentions' acct
BUT excluding self
2022-12-16 00:50:38 +08:00
Lim Chee Aun
45babb150b Try skip polling
For large medias, API returns 202 Accepted and media is still processing https://docs.joinmastodon.org/methods/media/#v2

masto.js does extra manual poll check by GET-ing the media after uploaded to see if the media is done processing
2022-12-15 21:34:21 +08:00
Lim Chee Aun
31b3d824cd Center the items in toolbar 2022-12-15 21:31:44 +08:00