Commit graph

551 commits

Author SHA1 Message Date
Lim Chee Aun
b227d816bc Show replies count for ancestors 2023-04-08 16:52:34 +08:00
Lim Chee Aun
224a289a20 New Mentions page 2023-04-06 19:32:26 +08:00
Lim Chee Aun
6773207610 Fix missing only mentions bug 2023-04-06 17:48:40 +08:00
Lim Chee Aun
efb38bc5d1 Forgot to switch back the limit 2023-04-06 11:33:13 +08:00
Lim Chee Aun
17ae03f766 since_id is not supported in trends/statuses
And change update interval to 5 mins
2023-04-06 10:24:52 +08:00
Lim Chee Aun
913a352dee Add Trending page 2023-04-06 01:14:38 +08:00
Lim Chee Aun
f1bb1454c3 Sort followed hashtags 2023-04-06 00:49:32 +08:00
Lim Chee Aun
ff1a9fa444 Full CRUD for Lists 2023-04-05 23:30:26 +08:00
Lim Chee Aun
8ce8e06913 Add '- Boosts' filter 2023-04-04 11:01:53 +08:00
Lim Chee Aun
0ee17395ae Auto-scroll to filter & add clear filter "button" 2023-04-03 13:17:22 +08:00
Lim Chee Aun
c7f4087ed2 Preliminary steps in adding filter bar 2023-04-03 10:36:31 +08:00
Lim Chee Aun
04b4101e55 Handle /notes/ url too 2023-04-03 10:05:57 +08:00
Lim Chee Aun
c8d582184f Revert "Sometimes, a bracket makes a huge difference"
This reverts commit 45c872df28.
2023-03-31 19:46:54 +08:00
Lim Chee Aun
45c872df28 Sometimes, a bracket makes a huge difference 2023-03-31 19:21:27 +08:00
Lim Chee Aun
347d288c83 It's time to level up ALL replies
When reach level 4, horizontal scrolling will kick in!
2023-03-30 20:07:07 +08:00
Lim Chee Aun
64b59e42a5 Remember replies toggle state during the "session" 2023-03-28 20:33:00 +08:00
Lim Chee Aun
f160a576d6 Add settings to hide translate button for certain languages 2023-03-28 19:04:52 +08:00
Lim Chee Aun
325bccf010 Prevent re-render when page visibility changes
Also time to remove legacy homeV1 🙏
2023-03-27 15:05:50 +08:00
Lim Chee Aun
4f8b5cf5fb Fix deduping happened before saving the status 2023-03-27 00:47:29 +08:00
Lim Chee Aun
caee38c98f New experiment: dedupe boosts and group context 2023-03-26 23:18:36 +08:00
Lim Chee Aun
f5646fe8a8 Attempt to fix weird "latest" item bug 2023-03-25 20:18:53 +08:00
Lim Chee Aun
2c8112baa5 Add ability to switch post to its own instance 2023-03-24 15:05:57 +08:00
Lim Chee Aun
e6da22a1e0 Nav Menu show avatar if multiple accounts
Accounts sheet default to 'switch' when click on account
2023-03-23 09:51:52 +08:00
Lim Chee Aun
422813be9c New experimental Filtered Posts UI 2023-03-22 00:09:36 +08:00
Lim Chee Aun
ed1d475a12 Fix .status conflicting with .notification.status
Naming is hard
2023-03-20 23:07:21 +08:00
Lim Chee Aun
47b51bdef8 Add Refresh menu item to Status page 2023-03-19 20:12:45 +08:00
Lim Chee Aun
d9b9c04ec0 Fix pinned statuses gone missing 2023-03-18 22:25:02 +08:00
Lim Chee Aun
a0d4d9e08c Time to save all to states
Memory usage might go up but need this for reactivity
2023-03-18 20:20:48 +08:00
Lim Chee Aun
ba2e9c29e4 Adjust adjust 2023-03-15 14:01:32 +08:00
Lim Chee Aun
f4310ad8e4 Add ability to reload hero status 2023-03-14 00:36:40 +08:00
Lim Chee Aun
0d29043358 Better profile document.title 2023-03-13 10:07:22 +08:00
Lim Chee Aun
e0e1196c9e Make account info load wayyyy faster on Profile page 2023-03-11 21:33:55 +08:00
Lim Chee Aun
6fd9c106c6 Add account info into Account statuses page 2023-03-11 14:05:56 +08:00
Lim Chee Aun
cf437a83da Make statuses in notifications reactive 2023-03-10 23:01:26 +08:00
Lim Chee Aun
731f91122b Fix toggle values for settings for translation 2023-03-09 13:20:01 +08:00
Lim Chee Aun
bbdfb5dd7d Prettify About section 2023-03-09 11:23:07 +08:00
Lim Chee Aun
66e068ee7b Fix bug with reblogs/favourites counting 2023-03-08 23:32:54 +08:00
Lim Chee Aun
87a5eb5492 Add configurable text size 2023-03-08 17:17:23 +08:00
Lim Chee Aun
73b8294811 Split Accounts away from Settings
Very MVP, even #settings-container is the same for now
2023-03-08 00:32:33 +08:00
Lim Chee Aun
355b3be6e9 Alrighty, let's test this post translation out! 2023-03-07 22:38:06 +08:00
Lim Chee Aun
7b8c7f3fb6 Grouped favourite+boost notifications! 2023-03-03 11:38:10 +08:00
Lim Chee Aun
a9412609cf Enable boosts carousel for public timelines too 2023-03-02 22:10:32 +08:00
Lim Chee Aun
37f7c2a581 Make the hashtag typing experience slightly better 2023-03-01 23:39:31 +08:00
Lim Chee Aun
9f84297b8f Ooops typo 2023-03-01 22:18:45 +08:00
Lim Chee Aun
50fd06057f Refactor niceDateTime out 2023-03-01 20:07:22 +08:00
Lim Chee Aun
b1d6f2001e Fix focus when switching to new pages 2023-03-01 15:47:19 +08:00
Lim Chee Aun
3c7fc30444 Add simple loading state for switching instances 2023-02-28 22:44:10 +08:00
Lim Chee Aun
a86daaac0b Fix useScroll bug 2023-02-28 21:56:41 +08:00
Lim Chee Aun
ba2aa18843 Fix/Beautify the menus in Settings 2023-02-28 17:12:17 +08:00
Lim Chee Aun
0bc009140e It's time to bring back the tab bar 2023-02-27 23:59:41 +08:00
Lim Chee Aun
8aaba24d1f Add 'more' menu
- Refactor Toast
- Fix locale for datetime strings in status
- Nicer shadow for menus
2023-02-27 00:55:04 +08:00
Lim Chee Aun
7b66b832d5 Add more "instance" + saveStatus for new notifications 2023-02-25 14:20:26 +08:00
Lim Chee Aun
b4a8e60144 Fix wrong authenticated 2023-02-25 12:40:59 +08:00
Lim Chee Aun
1c8bba456d Add menu for Public timeline
Add menu item to switch between Local and Federated
2023-02-25 11:25:50 +08:00
Lim Chee Aun
aca3cb677b Sometimes need exact distance instead ratio 2023-02-25 10:50:02 +08:00
Lim Chee Aun
1f2dbb8e06 Experimental multi-hashtag timeline 2023-02-25 10:04:30 +08:00
Lim Chee Aun
9e867c7af5 Fix title not working when not logged in
Welcome page's useTitle overridden other page's useTitle
2023-02-25 10:03:34 +08:00
Lim Chee Aun
732244b4b3 Shiny pill style 2023-02-23 16:43:17 +08:00
Lim Chee Aun
2120a1e28e Still got to make sure instance is lowercase
Also, spellcheck={false} > spellcheck="false"
2023-02-22 09:46:50 +08:00
Lim Chee Aun
cd9b01095c Fix post status banner showing wrong thing for non-logged-in users 2023-02-22 00:42:43 +08:00
Lim Chee Aun
8e4ecd242b Revert flush to cancel, speed up scroll position caching
Somehow the flush cache the scroll position for a different status ID
2023-02-20 20:59:46 +08:00
Lim Chee Aun
58208a417c Check if there are shortcuts too before displaying Columns 2023-02-20 00:22:10 +08:00
Lim Chee Aun
be35f3a415 Remove console.log 2023-02-19 21:15:40 +08:00
Lim Chee Aun
d5bceb1d81 Handle logged-out cases 2023-02-19 14:49:53 +08:00
Lim Chee Aun
7f22ec6a9b Go back to root after log out 2023-02-19 14:49:05 +08:00
Lim Chee Aun
f0eb684412 Got to instance them all 2023-02-19 00:05:46 +08:00
Lim Chee Aun
d4a6aa2d3b Only show alert if user typed something 2023-02-18 23:29:17 +08:00
Lim Chee Aun
ab2328f364 Handle use-case when Following is not in Home, in multi-column mode 2023-02-18 21:37:34 +08:00
Lim Chee Aun
02eb2ff470 Extract columns out & don't use dynamic imports
Vite have difficulties importing them dynamically. Sad face.

Also this makes Home look cleaner.
2023-02-18 21:14:24 +08:00
Lim Chee Aun
522d55ebb8 New experiment: multi-column mode 2023-02-18 20:48:24 +08:00
Lim Chee Aun
161aff64ac This footer is kinda abrupt, so try "delay" it a little 2023-02-18 10:51:39 +08:00
Lim Chee Aun
29d4cddbf4 Add experimental instance switcher for public timelines 2023-02-18 01:40:37 +08:00
Lim Chee Aun
046fde0f70 Restyle the footer 2023-02-18 01:28:10 +08:00
Lim Chee Aun
07d1734720 Sometimes autofocus ain't working 2023-02-18 01:27:59 +08:00
Lim Chee Aun
b06cd36b3f Initial work to allow cross-instance linking
- Load current-instance relationship on remote-instance account sheet
- Add button to switch to current-instance status page from remote-instance status page
2023-02-17 17:37:31 +08:00
Lim Chee Aun
e57b362ee0 Fix undefined turned into a "undefined" string due to string concat 2023-02-17 11:28:25 +08:00
Lim Chee Aun
0430f4ae89 Reuse BoostCarousel for pinned posts
Now we can show *anything* into a carousel
2023-02-17 10:55:16 +08:00
Lim Chee Aun
62ce0250c6 Don't need this 2023-02-17 10:14:44 +08:00
Lim Chee Aun
c37df11a25 Show pinned posts 2023-02-17 10:12:59 +08:00
Lim Chee Aun
4dae1d1576 Shorter copies 2023-02-16 19:10:26 +08:00
Lim Chee Aun
0bef245c83 New feature: Shortcuts 2023-02-16 17:52:16 +08:00
Lim Chee Aun
11d74b3258 Disable grouping for follow requests 2023-02-15 14:49:15 +08:00
Lim Chee Aun
f9794c1cd5 Fix more bugs from learnings 2023-02-15 11:20:48 +08:00
Lim Chee Aun
bc7ac30e74 Switch to logged-in instance URL 2023-02-15 10:51:09 +08:00
Lim Chee Aun
8da6532cd3 Propagate learnings to Notifications page 2023-02-15 10:50:20 +08:00
Lim Chee Aun
d324d3a672 Move notifications link from Following to Home 2023-02-15 10:49:36 +08:00
Lim Chee Aun
6f242aad27 Followed hashtags are paginated
Gotta fetch 'em all!
I don't know the limit, but let's fetch ALL for now instead of lazy loaded.
2023-02-12 22:58:36 +08:00
Lim Chee Aun
a37a1ca21b Instance-specific search?
I don't know if this is even useful??
2023-02-12 19:36:55 +08:00
Lim Chee Aun
08be313757 Additional styling for search page again
This is such a weird page
2023-02-12 19:29:27 +08:00
Lim Chee Aun
ac30963ddf New AccountBlock component 2023-02-12 19:29:03 +08:00
Lim Chee Aun
0b6dd07eee Rewrote notifications, again 2023-02-12 17:38:50 +08:00
Lim Chee Aun
6c43ced27c Desperate attempt to make the text and buttons flows nicely in the header
This code will probably haunt me in the future
2023-02-11 23:35:03 +08:00
Lim Chee Aun
4a01d3d404 Try save some space here 2023-02-11 20:56:33 +08:00
Lim Chee Aun
b29e7ad1cb Clear q URL when clear search field 2023-02-11 20:39:37 +08:00
Lim Chee Aun
d9564bff72 Still need these fallbacks for now 2023-02-11 18:55:21 +08:00
Lim Chee Aun
b8a938b6d8 Don't need Home button in public timeline 2023-02-11 18:21:39 +08:00
Lim Chee Aun
26f8b618a5 At this point, better write my own matchPath right? 2023-02-11 18:19:23 +08:00
Lim Chee Aun
9401fc38e1 Need location.search too because Search page is using it 2023-02-11 17:58:49 +08:00
Lim Chee Aun
27c7a2dee9 Shorter placeholder for Search field 2023-02-11 17:58:23 +08:00
Lim Chee Aun
c1eade0fd8 Stupid mobile safari doesn't apply radius to outlines 2023-02-11 17:58:12 +08:00
Lim Chee Aun
afa8a0c057 Maybe better copy for search page 2023-02-11 17:57:44 +08:00
Lim Chee Aun
863ac2663c Fix titles 2023-02-11 17:57:26 +08:00
Lim Chee Aun
62eb6d6b30 Reuse style for search page, time to surface it 2023-02-11 17:01:43 +08:00
Lim Chee Aun
068a49abce Add Followed Hashtags 2023-02-11 16:48:47 +08:00
Lim Chee Aun
ffc8d88f82 Add update checking to these pages 2023-02-11 16:28:03 +08:00
Lim Chee Aun
ee5ab3f22c Add loader to search page 2023-02-11 16:27:52 +08:00
Lim Chee Aun
0a7189d35a Fix wrong paths again 2023-02-11 16:27:40 +08:00
Lim Chee Aun
722852f5c2 Expose more pages now
Except one
2023-02-11 00:05:18 +08:00
Lim Chee Aun
3490b0e714 Revert "Sort first"
This reverts commit 96f61e6e3f.
2023-02-10 22:23:19 +08:00
Lim Chee Aun
e0e236bd26 Experimental hidden search page
And refactored out some reusable components
2023-02-10 22:10:13 +08:00
Lim Chee Aun
541d318fdc One more logic for comment collapsing 2023-02-10 17:35:38 +08:00
Lim Chee Aun
96f61e6e3f Sort first 2023-02-10 14:20:48 +08:00
Lim Chee Aun
81ebb61096 Sneak in this little menu
And… fix title leak bug
2023-02-10 13:39:46 +08:00
Lim Chee Aun
83e6a2b599 Remove console.log 2023-02-09 23:05:40 +08:00
Lim Chee Aun
109cae9c19 More path fixes 2023-02-09 23:01:33 +08:00
Lim Chee Aun
58d4ca0ff2 Finally replace Home 2023-02-09 22:27:49 +08:00
Lim Chee Aun
f511b0a5ab More code porting 2023-02-08 19:11:33 +08:00
Lim Chee Aun
9921e487e8 Minimum viable Home → Following port 2023-02-08 00:31:46 +08:00
Lim Chee Aun
f6897ef4d8 Don't open sub comments is parent is a thread 2023-02-07 12:01:36 +08:00
Lim Chee Aun
9992299716 More ports to reusable Timeline component
- use status id instead of status, for "auto-update" feature
- hot keys!
2023-02-06 23:50:00 +08:00
Lim Chee Aun
db428c04d1 Scoped keyboard shortcuts 2023-02-06 23:47:58 +08:00
Lim Chee Aun
4520822f1f Use nested routes 2023-02-06 20:17:07 +08:00
Lim Chee Aun
b58a838af0 Forgot to update these 2023-02-06 20:01:56 +08:00
Lim Chee Aun
7e5c3f1bac Allow Account sheet on welcome page 2023-02-06 19:55:04 +08:00
Lim Chee Aun
719a407414 Use /:instance?/xxx instead 2023-02-06 19:54:18 +08:00
Lim Chee Aun
3aea09fd42 Experimental feature to see post in currently logged-in instance 2023-02-06 19:09:25 +08:00
Lim Chee Aun
1357c1b2bd Fix more edge cases after breaking changes 2023-02-06 16:35:03 +08:00
Lim Chee Aun
1debfc2c12 Fix missing states 2023-02-06 01:10:49 +08:00
Lim Chee Aun
a130743d4c Breaking: refactor all masto API calls
Everything need to be instance-aware!
2023-02-06 00:17:19 +08:00
Lim Chee Aun
7e9b6f681f Forgot to emojify again
This is getting ridiculous
2023-02-04 13:18:23 +08:00
Lim Chee Aun
e0bab6c70a More refactoring work 2023-02-03 21:08:08 +08:00
Lim Chee Aun
e95954a7fd Begin work on account-specific store
1. Move boostsCarousel setting to account-specific, sadly no migration from previous setting
2. Cache last notification to prevent keep getting unread notification badge
2023-02-02 17:29:57 +08:00
Lim Chee Aun
eb2f80162a Don't debounce if loading subsequent posts 2023-02-02 15:48:12 +08:00
Lim Chee Aun
20e569da0c Strip out @acct@ from instance URL when log in 2023-02-01 10:49:42 +08:00
Lim Chee Aun
3d2b7f683c Fix notifications grouping bug 2023-02-01 02:09:07 +08:00
Lim Chee Aun
ed8fce3cbf Don't need --invisible hack
Protip: use `:not(details:not([open]) > summary ~ *, details:not([open]) > summary ~ * *)`
2023-02-01 01:21:58 +08:00
Lim Chee Aun
6647b6cc28 Fix j/k shortcuts to work with collapsed comments
Use x key to expand/collapse comments
2023-02-01 00:10:38 +08:00
Lim Chee Aun
9a261470df Custom titleComponent for Timeline 2023-01-31 19:08:10 +08:00
Lim Chee Aun
18b48c8d19 Smarter collapsing, show total comments count, show 3 avatars 2023-01-31 16:13:16 +08:00
Lim Chee Aun
4ed2852c41 Don't show updates button when loading 2023-01-31 11:24:46 +08:00
Lim Chee Aun
1c52875ba4 Add links to privacy policy 2023-01-30 23:16:00 +08:00
Lim Chee Aun
c40fd1ec48 Better hues 2023-01-30 22:31:21 +08:00
Lim Chee Aun
3cec4f66c5 Fix document.title bug 2023-01-30 22:00:14 +08:00
Lim Chee Aun
969fddc581 Time for use-debounce
Try a leading debounce here
2023-01-30 20:51:06 +08:00
Lim Chee Aun
509aac11ab Fix document title leaked out
Probably need to rethink this one day
2023-01-30 20:36:10 +08:00
Lim Chee Aun
1cfef22465 Let's test this out 2023-01-30 20:30:45 +08:00
Lim Chee Aun
88ffb3a44c Reduce distance from start to show the scroll to top button 2023-01-30 19:59:41 +08:00
Lim Chee Aun
1fed35f674 Flush instead of cancel 2023-01-30 19:36:47 +08:00
Lim Chee Aun
e5e2bd6f2a Add account statuses timeline + few aesthetic changes to Account sheet
And secretly link to this timeline, don't tell anyone lol
2023-01-29 23:37:13 +08:00
Lim Chee Aun
292186e918 New UI experiment: media modal + status detail page
- Extracted out the media modal and media component from Status
- Use :has CSS selector to do most of the layout work
- Expecting edge case UI bugs
2023-01-29 15:23:53 +08:00
Lim Chee Aun
ae37d58826 Fix document.title not working properly 2023-01-29 15:22:16 +08:00
Lim Chee Aun
66216e911e At this point, might as well support level 4
Also still need to show the comment icon IF THERE'S LEVEL 5++
2023-01-29 01:29:26 +08:00
Lim Chee Aun
a088b48eb7 Status thread page improvements
- Show level 3 comments
- Change header-tap to scroll top to a button instead (prevent accidental scroll top)
- Show avatars in <summary>
- Clean up CSS a bit
2023-01-29 01:02:25 +08:00
Lim Chee Aun
ae90b41aae New feature: "Show all sensitive content" menu 2023-01-28 22:34:36 +08:00
Lim Chee Aun
aaeca7dd03 Refactor out a Timeline component
Also replace login() with createClient() for faster log in
2023-01-28 18:52:18 +08:00
Lim Chee Aun
816653e2e6 Add j/k keyboard navigation to status page
At the same time, fix shift+k not working in Home page
2023-01-27 20:54:18 +08:00
Lim Chee Aun
912506afcc Fix some scrolling edge cases
This is tough
2023-01-27 11:48:13 +08:00
Lim Chee Aun
e83d128f62 Rewrite Notifications page + experimental fix on getting/showing updates 2023-01-27 11:47:30 +08:00
Lim Chee Aun
6a7e7085bd Bump up retries
Slow servers are slow.
2023-01-26 21:02:39 +08:00
Lim Chee Aun
285f8b46f2 Add logo and link to @phanpy 2023-01-26 00:54:30 +08:00
Lim Chee Aun
9a898437f9 Remove unused code 2023-01-25 21:53:43 +08:00
Lim Chee Aun
d2c820ce5a Only show 'Set as default' if has more than 1 account 2023-01-25 16:42:01 +08:00
Lim Chee Aun
c24a3ef251 Add fetch retries in status page 2023-01-25 16:41:28 +08:00
Lim Chee Aun
28281bb752 New component: Menu
It's time to do this menu thing the right way instead of hacky CSS
2023-01-24 20:56:43 +08:00
Lim Chee Aun
19ee95d188 Add a key, just in case 2023-01-24 20:55:04 +08:00
Lim Chee Aun
791ac667f0 Style adjustments for Settings page 2023-01-24 17:06:13 +08:00
Lim Chee Aun
10b99d2af4 Fix k, shift+k not working 2023-01-24 16:27:09 +08:00
Lim Chee Aun
348e7a52c9 Fix stupid mistake 2023-01-23 17:58:33 +08:00
Lim Chee Aun
e7dffecfe0 Need to reset cachedStatusesMap too 2023-01-22 19:21:24 +08:00
Lim Chee Aun
0ecd7f572f s/Loader/loader 2023-01-22 16:40:10 +08:00
Lim Chee Aun
78839913ed s/Icon/icon 2023-01-22 16:39:04 +08:00
Lim Chee Aun
2a44f3a670 Hidden way to update the account info
Usually when avatar or name changes
2023-01-22 00:37:46 +08:00
Lim Chee Aun
6f4a5553ec Simplify and robustify 2023-01-21 20:21:16 +08:00
Lim Chee Aun
81170c6d05 When clicked, don't use cached scroll position 2023-01-21 19:52:51 +08:00
Lim Chee Aun
fa5a468005 Don't really get how this becomes multi-line 2023-01-21 18:59:13 +08:00
Lim Chee Aun
9bff95bcec Replace preact-router with react-router
Need more routing powers, hopefully things don't break 🤞
2023-01-21 00:23:59 +08:00
Lim Chee Aun
a87b95ed18 Restyle settings sheet 2023-01-17 17:58:04 +08:00
Lim Chee Aun
8834c03d7a Need to cancel the debounce 2023-01-17 08: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
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
68b6cb869e No need these console logs anymore 2023-01-14 22:05:38 +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
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
e2b6f2df6a Auto-threadify when open a status page with context 2023-01-11 17:45:37 +08:00
Lim Chee Aun
a421406a11 DRY get current Account 2023-01-11 13:28:42 +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
9743da1e9b Fix cached statuses gone 2023-01-10 20:05:47 +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
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
600edbee5d Might as well make my own link open up the Account modal 2023-01-07 21:43:56 +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
ee9bfe6331 Lots of tiny adjustments 2023-01-07 14:45:04 +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
fffc8cc983 Further grouping of notifications 2023-01-06 12:51:53 +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
04ccf8aca9 Replace @github/relative-time-element with dayjs 2023-01-05 10:50:27 +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
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
d15b1fe03e Fix route() actually not working 2023-01-03 00:48:36 +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
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
44f179a69f Beautify notifications slightly 2023-01-02 14:42:28 +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
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
d2d8571b3f Fix updates button got cut off in larger viewport 2023-01-01 19:24:08 +08:00
Lim Chee Aun
b62cff4d0e Different gradient for welcome 2023-01-01 17:19:07 +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
842db90f9c Handle context API call fail error 2023-01-01 12:02:11 +08:00
Lim Chee Aun
ac91dc7983 Make this manual opt-in 2023-01-01 08:51:56 +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
b12b0c588d Experimental j,k,o,esc,backspace shortcuts 2022-12-31 09:52:31 +08:00
Lim Chee Aun
c0234dd26e Add focus for notification block too 2022-12-30 23:08:55 +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
123d2469f6 Don't show hero pointer when loading 2022-12-30 13:26:05 +08:00
Lim Chee Aun
3338c49c25 Fix threshold for larger-than-viewport statuses 2022-12-29 16:15:58 +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
353c911232 Temporarily disable this now 2022-12-29 10:27:36 +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
2dca345818 More breathing space after the negative top margin hack 2022-12-28 00:24:36 +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
fb88129ae7 Check for ref before access scrollTop 2022-12-27 09:05:45 +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
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
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
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
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
8eec844781 Scroll-to-top for Notifications 2022-12-24 17:54:42 +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
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
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
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
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
de409bd668 Fix empty statuses when (pre)loading homeNew 2022-12-22 21:38:43 +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
6c0aedcd3e Fix new posts check not working 2022-12-22 08:39:01 +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
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
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
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
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
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
99357dc887 Shorten number for replies count 2022-12-19 17:38:20 +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
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
f110ac6812 Fix flash of un-nested comments 2022-12-19 00:19:19 +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
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
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
665b908698 Put names into every export 2022-12-16 13:27:04 +08:00
Lim Chee Aun
94dd2bf627 Fix spoiler content accidentally get leaked in document.title
- Also add quotes
- Add comment to why use 64 chars (soft) limit
2022-12-15 17:14:33 +08:00
Lim Chee Aun
95519a538e Some breathing space for "Show more" button 2022-12-15 17:00:11 +08:00
Lim Chee Aun
56cab34a9c Test add last build time and commit hash 2022-12-15 14:42:34 +08:00
Lim Chee Aun
ca98863c01 Fix bug when the first notification is already a grouped one 2022-12-15 13:11:28 +08:00
Lim Chee Aun
ca71d45a77 Fix wrong isSelf logic 2022-12-15 01:45:36 +08:00
Lim Chee Aun
735cbf05b7 Very embarrassing mistake
Why do I even name such bad variable names
2022-12-14 22:53:14 +08:00
Lim Chee Aun
fa1769c3c2 New feature: Grouped notifications
- Grouped based on notification.type and notification.status.id
- Crossing fingers here
2022-12-14 22:46:50 +08:00
Lim Chee Aun
6195f45800 Remove unused code 2022-12-13 20:42:19 +08:00
Lim Chee Aun
3396aa2512 Fix InView creating div inside ul
Make it create li but only observe one of the skeleton instead
2022-12-12 22:42:58 +08:00
Lim Chee Aun
21cfec3386 Remove console logs 2022-12-12 08:47:11 +08:00
Lim Chee Aun
cb64f5ffda Add "Edited at" meta with Edit History modal
Much refactor, kinda ugly code still.

Edit History design is still very basic.
2022-12-11 21:22:22 +08:00
Lim Chee Aun
6f3eae15b6 Fix missing boost icon 2022-12-11 17:10:10 +08:00
Lim Chee Aun
9f9395d965 Better copy to differentiate poll created vs voted 2022-12-11 12:15:39 +08:00
Lim Chee Aun
3bee69dc84 Clear notificationsNew when loading fresh 2022-12-11 12:07:36 +08:00
Lim Chee Aun
5aa9649935 Convert all outlines to borders
Because Safari ain't respecting border-radius with outlines
2022-12-11 00:52:04 +08:00
Lim Chee Aun
f41ca129c2 Fix Notifications link on Home header triggering scroll-to-top 2022-12-10 23:45:52 +08:00
Lim Chee Aun
b3941462d6 Facepalm moment
s/created_at/createdAt
2022-12-10 21:23:19 +08:00
Lim Chee Aun
d884cddf16 Fix bugs on status page 2022-12-10 21:19:38 +08:00
Lim Chee Aun
46d5e20008 Code cleanup on Settings page 2022-12-10 20:48:48 +08:00
Lim Chee Aun
33637c76d1 Let's change this and see if it's annoying 2022-12-10 20:48:09 +08:00
Lim Chee Aun
d11a47bdbc Add link to github repo and myself 2022-12-10 20:47:34 +08:00
Lim Chee Aun
3778a11629 Fix logo 2022-12-10 17:38:20 +08:00