Commit graph

874 commits

Author SHA1 Message Date
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
b47c043699 Fix select field color bug on Windows
It shows as white text on white background on Windows 10 or 11
https://mastodon.social/users/cheeaun/statuses/109812923100158393
2023-02-06 00:05:43 +08:00
Lim Chee Aun
942d0b0a30 Fix welcome page peakaboo 2023-02-05 20:14:23 +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
fa3ee31cd3 Fix #55 2023-02-02 10:30:16 +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
7d94c53e2e Honestly backdrop should never be a lighter color 2023-01-31 23:43:24 +08:00
Lim Chee Aun
bbb3017b2d Quietly handle hashtag links
No follow/unfollow yet.
2023-01-31 19:31:25 +08:00
Lim Chee Aun
9a261470df Custom titleComponent for Timeline 2023-01-31 19:08:10 +08:00
Lim Chee Aun
b106d1d519 Adjust header margins 2023-01-31 19:07:09 +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
e282f5df2a Strip protocol from instance domain/uri 2023-01-31 00:58:00 +08:00
Lim Chee Aun
a2e47d7a6a Hide arrow from summary 2023-01-31 00:37:55 +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
8787d44b56 Disable pinch-zoom on body 2023-01-30 21:54:30 +08:00
Lim Chee Aun
a990b883f3 Remove old unused code 2023-01-30 21:05:49 +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
d5447db035 Use % instead 2023-01-30 19:49:38 +08:00
Lim Chee Aun
613e77e43f Got to be picky about the smooth vs jump scroll 2023-01-30 19:48:33 +08:00
Lim Chee Aun
1fed35f674 Flush instead of cancel 2023-01-30 19:36:47 +08:00
Lim Chee Aun
0a4c3069dd Fix this translateY making carousel jumpy
- It moves outside of the box
- Causes the container to have a vertical scrollbar
- When scrolling, it's moves up and down, causing the carousel to jump
- Don't quite understand why, maybe a super rare browser (Chrome) bug
2023-01-30 19:35:28 +08:00
Lim Chee Aun
305bb92906 Fix optimizeSpeed rendering can affect text kerning and layout
Seems like Mobile Safari make less font rendering calculation to speed up rendering. When toggling between text-rendering modes, the text can be shifted or relayout-ed.
2023-01-30 10:01:34 +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
99b9194713 Fix wrong status link when it's a boost in Timeline 2023-01-29 23:34:51 +08:00
Lim Chee Aun
cc2d4d4cc1 Fix text-expander positioning bug
Also fix related bugs
2023-01-29 21:45:59 +08:00
Lim Chee Aun
09272e8407 Make header go up a little 2023-01-29 19:11:58 +08:00
Lim Chee Aun
b8c9059562 Quick fix for "See post" messing up the top controls div in small screens 2023-01-29 15:55:15 +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
80cc387c1c Home header style change 2023-01-29 10:17:29 +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
1a5816f886 Try disabling the fade-out when loading context
Too distracting.
2023-01-28 14:05:04 +08:00
Lim Chee Aun
ce0c0563f3 Show common followers, only when not following 2023-01-27 21:36:04 +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
ded6420c1a Fallback if browser doesn't autoplay 2023-01-27 17:51:31 +08:00
Lim Chee Aun
31b342d68e Fix undefined inHome 2023-01-27 15:17:56 +08:00
Lim Chee Aun
515b988b94 Getting trolled by my own code 2023-01-27 14:36:47 +08:00
Lim Chee Aun
77c1b36a1f Fix wrong shadow color 2023-01-27 14:35:44 +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
7785e29f0d Fun stuff 2023-01-27 11:47:37 +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
7c6157d47c Try get the v2 instance config then fallback to v1
There are new things in v2 that will be needed later
2023-01-27 11:45:38 +08:00
Lim Chee Aun
6a7e7085bd Bump up retries
Slow servers are slow.
2023-01-26 21:02:39 +08:00
Lim Chee Aun
dda83c7834 Better error state for Account sheet
Some accounts… can't be resolved by the API
2023-01-26 11:26:24 +08:00
Lim Chee Aun
285f8b46f2 Add logo and link to @phanpy 2023-01-26 00:54:30 +08:00
Lim Chee Aun
f2d50b0bac Add lang to all fields based on chosen language
Reference: https://github.com/mastodon/mastodon/issues/19858
2023-01-26 00:34:52 +08:00
Lim Chee Aun
a1e2207e96 Reset input[type=file] after media is added
Bug: Add file A, remove fie A, add file A = nothing happens
2023-01-26 00:34:00 +08:00
Lim Chee Aun
b6dfbd0819 s/Spoiler text/Content warning 2023-01-26 00:32:56 +08:00
Lim Chee Aun
9a898437f9 Remove unused code 2023-01-25 21:53:43 +08:00
Lim Chee Aun
3392f57462 Rewrite scrolling logic in carousel
Just normal scroll event is enough, don't need intersection observer
2023-01-25 20:37:59 +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
5b8657a2ab Subtle fade in for menus 2023-01-25 16:39:57 +08:00
Lim Chee Aun
7c4bda105b Fix profile metadata labels and values could have shortcode emojis 2023-01-25 16:25:23 +08:00
Lim Chee Aun
20b0a80c45 Delicate adjustments to the gradient hints 2023-01-25 01:01:04 +08:00
Lim Chee Aun
5fb123f228 Need to preserve white space in media descriptions 2023-01-25 00:40:05 +08:00
Lim Chee Aun
7f9742b50a Animate skeleton 2023-01-25 00:26:47 +08:00
Lim Chee Aun
a18659ee27 Test: Disable user-selection in carousel 2023-01-24 22:21:27 +08:00
Lim Chee Aun
0ea65b2cfd Remove old spoiler effect
This was fun but sadly perf is really bad
2023-01-24 22:21:04 +08:00
Lim Chee Aun
5f89c0673a Fix wrong colors for menu on Mobile Safari 2023-01-24 22:00:50 +08:00
Lim Chee Aun
f16c29097c Experiment: more radius for media 2023-01-24 21:10:44 +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
082745ee4f Experiment: disable :hover state on non-hover devices 2023-01-24 16:26:22 +08:00
Lim Chee Aun
8cbed0911e Style carousel dots to look the same too 2023-01-24 12:15:39 +08:00
Lim Chee Aun
51eaf4f1f2 Replace blue-text buttons on carousel modal 2023-01-24 11:32:33 +08:00
Lim Chee Aun
cdb5435796 Nicer radius for multi-media container 2023-01-23 20:35:15 +08:00
Lim Chee Aun
56b6552d65 Show thread counter for small <Status /> too 2023-01-23 20:34:53 +08:00
Lim Chee Aun
348e7a52c9 Fix stupid mistake 2023-01-23 17:58:33 +08:00
Lim Chee Aun
3213e8503e Fix alt tag text got chopped off at the bottom 2023-01-22 23:57:43 +08:00
Lim Chee Aun
b72f683a97 Add "12 hours" option for poll duration 2023-01-22 20:50:11 +08:00
Lim Chee Aun
4c05692ef5 This account resolving thingie is getting ridiculous 2023-01-22 20:29:48 +08:00
Lim Chee Aun
a522511e0e Add "Mark media as sensitive" checkbox
It does the same thing as spoiler text toggle.
2023-01-22 19:33:45 +08:00
Lim Chee Aun
e7dffecfe0 Need to reset cachedStatusesMap too 2023-01-22 19:21:24 +08:00
Lim Chee Aun
a495e1fa68 Only do transition for large screens 2023-01-22 17:19:37 +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
d093bddf43 Lighten the purple further for dark mode 2023-01-22 16:32:45 +08:00
Lim Chee Aun
1439b22963 New feature: ALT badge in image carousel
Adjusted the layout and fix some styles as well
2023-01-22 16:27:00 +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
4760efe837 Need to pass the 'e' too 2023-01-21 23:43:39 +08:00
Lim Chee Aun
952f048913 Fix disabling Boosts Carousel not working 2023-01-21 23:36:31 +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
e0d50168fd Don't need useLocation when in compose pop-out 2023-01-21 13:21:57 +08:00
Lim Chee Aun
37fc65b47a Don't need useEffect for backgroundLocation 2023-01-21 10:08:55 +08:00
Lim Chee Aun
d66d1bca12 Stronger colors for dark mode 2023-01-21 01:04:40 +08:00
Lim Chee Aun
ddce5bb0ff Fix background location need to persist 2023-01-21 01:04:27 +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
baf139762c Scroll start logic should work when overscroll too 2023-01-20 16:05:27 +08:00
Lim Chee Aun
1b6348fb08 Fix some links that are actually not user-links 2023-01-19 15:51:54 +08:00
Lim Chee Aun
a362a9367f Reduce width of boosts carousel
Make it show roughly 3 boosts at a time
2023-01-18 00:56:35 +08:00
Lim Chee Aun
76e9e8d69d New logo, banner and metacrap 2023-01-17 20:35:54 +08:00
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