Commit graph

484 commits

Author SHA1 Message Date
Lim Chee Aun
4b88c6ca65 Make sure status link has instance too for toast 2023-02-23 16:44:01 +08:00
Lim Chee Aun
732244b4b3 Shiny pill style 2023-02-23 16:43:17 +08:00
Lim Chee Aun
bd728df79b Fix undefined customEmojis 2023-02-23 11:36:07 +08:00
Lim Chee Aun
8a41599466 Allow esc to close Account sheet 2023-02-22 13:28:01 +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
c13cab51a9 Show large card for content with text-weight=1
Also finally replace the hacky CSS with something more legit
2023-02-21 23:59:34 +08:00
Lim Chee Aun
c2e9dc0efe Use url, not uri 2023-02-21 14:29:25 +08:00
Lim Chee Aun
8891e0f01c Fix follow/unfollow not working for remote accounts 2023-02-21 14:19:50 +08:00
Lim Chee Aun
6e9661a70c Use the right way 2023-02-20 20:58:53 +08:00
Lim Chee Aun
cd70bf87db Animate position-object when link is focused 2023-02-20 17:51:41 +08:00
Lim Chee Aun
79df9546bd Fix the compose status states not inheriting properly 2023-02-20 00:46:21 +08:00
Lim Chee Aun
6c63fb14b4 Hide keyboard shortcut hint until keyboard is triggered 2023-02-19 22:07:46 +08:00
Lim Chee Aun
91ee0da8ef Close menu when trigger shortcut 2023-02-19 22:07:15 +08:00
Lim Chee Aun
8428ca232c Fix shortcuts button missing shadow
And move the menu offset a little
2023-02-19 21:18:12 +08:00
Lim Chee Aun
5c6c9a43f2 Fix regression: threadify stopped working
This is due to status key changed with extra instance string
2023-02-19 21:16:23 +08:00
Lim Chee Aun
d5bceb1d81 Handle logged-out cases 2023-02-19 14:49:53 +08:00
Lim Chee Aun
72068d9d46 Another guard 2023-02-19 10:56:28 +08:00
Lim Chee Aun
a27bdbc69b Another guard for corrupted shortcuts 2023-02-19 10:42:56 +08:00
Lim Chee Aun
2df67f37a3 Handle cases if the shortcuts are corrupted 2023-02-19 10:27:37 +08:00
Lim Chee Aun
34a015c36a Show pointer cursor 2023-02-19 10:27:10 +08:00
Lim Chee Aun
7e65d8be5d Make smaller statuses stand out in the carousel 2023-02-19 01:10:06 +08:00
Lim Chee Aun
65c1af2eac Make shortcuts button look even cooler 2023-02-19 00:08:37 +08:00
Lim Chee Aun
ccdb8d144c Need useTitle 2023-02-18 22:13:32 +08:00
Lim Chee Aun
ce8e411cab Prevent hashtags from being clickable inside Composer 2023-02-18 21:44:19 +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
45a1fc057e Limit number of shortcuts
9 because there's only 9 keyboard shortcuts. There's '0' but… nah.
2023-02-18 19:39:17 +08:00
Lim Chee Aun
3f73f7d174 Fix weird bug when closing media modal + status page
Somehow useMatch re-renders the media modal and mess up some event handlers on it
Possibly due to react-router-match vs preact issues.

So, remove it totally, replace with CSS :has() solution
2023-02-18 17:38:42 +08:00
Lim Chee Aun
5707da703f Revert "Skeleton avatar should follow size"
This reverts commit f579a8bfb9.
2023-02-18 01:45:44 +08:00
Lim Chee Aun
e35f4e2644 Vite complain this is too complex 2023-02-17 20:48:52 +08:00
Lim Chee Aun
3915b3818c One more 40em 2023-02-17 20:48:38 +08:00
Lim Chee Aun
5ef67fab91 Variable-ise the 40em 2023-02-17 20:47:09 +08:00
Lim Chee Aun
5af2a060a6 Update styles 2023-02-17 19:31:28 +08:00
Lim Chee Aun
f579a8bfb9 Skeleton avatar should follow size 2023-02-17 19:08:19 +08:00
Lim Chee Aun
9e1f62e47b Use instance check instead of authenticated check 2023-02-17 17:40:39 +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
dc1a045de9 Fix play icon too faded out 2023-02-17 13:07:43 +08:00
Lim Chee Aun
d8e6d349a0 Fix undefined 'votes' 2023-02-17 11:00:34 +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
a1edc142ae Fix shortcuts button not hiding on large screen 2023-02-17 10:53:04 +08:00
Lim Chee Aun
c37df11a25 Show pinned posts 2023-02-17 10:12:59 +08:00
Lim Chee Aun
7aba448f42 Handle multi-paragraph code blocks
This ain't going to be fun if the HTML gets messier in the future
2023-02-16 21:51:22 +08:00
Lim Chee Aun
4dae1d1576 Shorter copies 2023-02-16 19:10:26 +08:00
Lim Chee Aun
74a02ee388 lol forgot to link the datalist 2023-02-16 18:37:57 +08:00
Lim Chee Aun
73e8bed5f0 Basic validation 2023-02-16 18:22:19 +08:00
Lim Chee Aun
0bef245c83 New feature: Shortcuts 2023-02-16 17:52:16 +08:00
Lim Chee Aun
75b6cddb04 Fix conditions not scoped properly 2023-02-15 21:40:58 +08:00
Lim Chee Aun
f198571367 Compare exact string before checking variants 2023-02-15 10:46:29 +08:00
Lim Chee Aun
4c17522d42 Fix escape key not working on Safari 2023-02-14 19:38:17 +08:00
Lim Chee Aun
c01d3098b8 Add pencil 2023-02-13 09:22:03 +08:00
Lim Chee Aun
255ca8eaa6 Support edit media description for Mastodon v4.1 2023-02-13 01:21:18 +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
30b747527e Okayyy this is dangerous 2023-02-12 14:24:27 +08:00
Lim Chee Aun
e4d9e7f7db Disable position-object animation when media modal appears
Got to say :has() is so darn useful
2023-02-11 23:46:33 +08:00
Lim Chee Aun
61edcb2115 Replace ALT badge with info icon
ALT is just… too technical.
2023-02-11 22:36:19 +08:00
Lim Chee Aun
2f2e343115 Shorter skeleton 2023-02-11 21:09:36 +08:00
Lim Chee Aun
ef2f55457f Take care of unauth-ed cases 2023-02-11 19:39:30 +08:00
Lim Chee Aun
d9564bff72 Still need these fallbacks for now 2023-02-11 18:55:21 +08:00
Lim Chee Aun
f756f23d6e Better menu overflow + bounding box
8 is a magic number
2023-02-11 17:04:48 +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
d02aea4616 Try portal to document.body 2023-02-11 08:37:54 +08:00
Lim Chee Aun
e24beaffac Make menu disappear when scroll 2023-02-11 06:25:38 +08:00
Lim Chee Aun
5911eb8033 Add more spellChecks 2023-02-11 06:21:23 +08:00
Lim Chee Aun
722852f5c2 Expose more pages now
Except one
2023-02-11 00:05:18 +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
1638bb4e37 Fix clamp bug 2023-02-10 14:20:41 +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
8871334af8 Allow 2-line clamp for alt tag on small screens too 2023-02-10 13:35:43 +08:00
Lim Chee Aun
8b77615c80 Need to save status after edit
Before this, the status (and context) will auto-refresh after posting, but now it's only refreshing context
2023-02-10 11:35:47 +08:00
Lim Chee Aun
91aeed5fe6 Respect your preferences 2023-02-09 23:59:57 +08:00
Lim Chee Aun
58d4ca0ff2 Finally replace Home 2023-02-09 22:27:49 +08:00
Lim Chee Aun
129417bad3 Fix wrong links 2023-02-09 17:41:42 +08:00
Lim Chee Aun
d6d174b5c7 Change home icon to be less birdy 2023-02-08 22:56:30 +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
c6c18aae09 Fix spoiler bug again 2023-02-07 12:56:26 +08:00
Lim Chee Aun
8ca4d7333e Need skeleton 2023-02-07 00:25:38 +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
b58a838af0 Forgot to update these 2023-02-06 20:01:56 +08:00
Lim Chee Aun
43c4fc6534 resolve only works when authenticated 2023-02-06 19:54:48 +08:00
Lim Chee Aun
ad13f90374 Fix info stays when there's error 2023-02-06 19:54:35 +08:00
Lim Chee Aun
719a407414 Use /:instance?/xxx instead 2023-02-06 19:54:18 +08:00
Lim Chee Aun
692851b24c Fix useMatch not working with optional path segment 2023-02-06 19:29:00 +08:00
Lim Chee Aun
1357c1b2bd Fix more edge cases after breaking changes 2023-02-06 16:35:03 +08:00
Lim Chee Aun
de411b4dff Fix some posts can be spoiler but sensitive: false 2023-02-06 00:19:22 +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
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
e0bab6c70a More refactoring work 2023-02-03 21:08:08 +08:00
Lim Chee Aun
fa3ee31cd3 Fix #55 2023-02-02 10:30:16 +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
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
613e77e43f Got to be picky about the smooth vs jump scroll 2023-01-30 19:48:33 +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
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
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
ce0c0563f3 Show common followers, only when not following 2023-01-27 21:36:04 +08:00
Lim Chee Aun
ded6420c1a Fallback if browser doesn't autoplay 2023-01-27 17:51:31 +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
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
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
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
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
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
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
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
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
81170c6d05 When clicked, don't use cached scroll position 2023-01-21 19:52:51 +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
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
1b6348fb08 Fix some links that are actually not user-links 2023-01-19 15:51:54 +08:00
Lim Chee Aun
d0880f5c56 Link to status page instead 2023-01-17 16:18:24 +08:00
Lim Chee Aun
6e72601833 Compose now supports paste/drag-drop files 2023-01-16 09:42:44 +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
8c0078ddd8 It's time for hairline width 2023-01-14 22:27:02 +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
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
dfaec0605a Can re-use the UID as new window target name! 2023-01-11 23:23:49 +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
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
9338c6905d Try another spoiler effect 2023-01-10 22:10:29 +08:00