Commit graph

961 commits

Author SHA1 Message Date
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
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
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
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
05fd9bdd2c Make spoiler effect work in dark mode 2022-12-24 22:52:19 +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
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
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
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
13a347ce37 New: char count for Compose field
Uses pre-compiled regex for perf
2022-12-23 16:45:02 +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
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
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
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
f6e3c979af Fix onClick not a function 2022-12-21 01:18:37 +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
3fede678c7 Case-insensitive and don't apply for short:true 2022-12-20 22:00:11 +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
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
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
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
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
8c97dcc5bc 💅 Aesthetic changes 2022-12-19 13:38:16 +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
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
762e525c68 Add profile metadata 2022-12-18 12:21:57 +08:00
Lim Chee Aun
1ffcffa1f4 Try different style for "Read more" 2022-12-18 10:08:44 +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
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
e6ed64cfd0 Fix auto display: none not working
`this` probably refers to something else
2022-12-17 14:38:21 +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
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
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
Lim Chee Aun
12c11c65c1 The title inside the card has weird line height 2022-12-15 20:18:48 +08:00
Lim Chee Aun
f5da383ef3 Sometimes external, sometimes not. 2022-12-15 19:45:25 +08:00
Lim Chee Aun
332dd30c1d Writing logic code is hard 2022-12-15 17:27:28 +08:00
Lim Chee Aun
45b7d42d38 Add lazy loading to all images 2022-12-15 14:19:48 +08:00
Lim Chee Aun
fc235024aa Handle pop-in case when there's already a Compose field open
Show confirmation first before popping-in
2022-12-15 13:03:20 +08:00
Lim Chee Aun
b490974638 Responsive font-size for the poll and actions too 2022-12-15 10:01:18 +08:00
Lim Chee Aun
27c0ba7f4b Make sure the media has min height
Some images have *very* small height
2022-12-15 01:46:04 +08:00
Lim Chee Aun
da0309ab0f Light tint of background for poll options 2022-12-15 01:18:23 +08:00
Lim Chee Aun
58860c334c Responsive font size based on content length
The shorter, the larger font-size
2022-12-15 00:41:48 +08:00
Lim Chee Aun
b0372ea83b Dispatch oninput manually when textarea value change
I thought… React/Preact should do this automagically…
2022-12-14 22:54:12 +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
0aa7066274 Prevent conflicting style for poll when replying to status with a poll 2022-12-14 21:49:42 +08:00
Lim Chee Aun
72751709df New feature: poll
- More fixes
2022-12-14 21:48:17 +08:00
Lim Chee Aun
121e9176f3 Add style for leading choices
Also make sure the votes percentage doesn't shrink
2022-12-14 19:00:04 +08:00
Lim Chee Aun
f2dc15c8ef Slightly smaller font size for meta text in poll 2022-12-14 18:45:34 +08:00
Lim Chee Aun
b883836f8a Fix percentage count for multiple-choice polls 2022-12-14 17:56:08 +08:00
Lim Chee Aun
410548603f Fix check icon not appearing for own-voted poll choices 2022-12-14 17:11:16 +08:00
Lim Chee Aun
8b5ac5154c Fix pre meta text taking up space, due to some *very* long names/usernames 2022-12-14 16:16:08 +08:00
Lim Chee Aun
5c6fb7b7c8 Better username lookup 2022-12-14 15:39:20 +08:00
Lim Chee Aun
d4cdf2435f Fix poll percentage showing NaN
This happens when votes are still 0, so 0 divide by 0
2022-12-14 01:48:55 +08:00
Lim Chee Aun
975f3dd33f Finally fix HMR not working for this file 2022-12-14 00:39:35 +08:00
Lim Chee Aun
38aaf89529 Don't need this animation, too many happening at the same time 2022-12-14 00:20:43 +08:00
Lim Chee Aun
0e1f4c527e This close window check is getting on my nerves 2022-12-14 00:20:24 +08:00
Lim Chee Aun
2b21c421d1 Comment out this console.log 2022-12-14 00:19:49 +08:00
Lim Chee Aun
04084d3339 'not-allowed' cursor looks very annoying 2022-12-13 22:34:23 +08:00
Lim Chee Aun
fb6bca9016 Fix wrong logic again 2022-12-13 22:26:29 +08:00
Lim Chee Aun
e2346bc32a Shift+click to open compose window
- Fixes for closing
- Easier code for checking if can close window
2022-12-13 21:54:16 +08:00
Lim Chee Aun
6195f45800 Remove unused code 2022-12-13 20:42:19 +08:00
Lim Chee Aun
9d78e67381 New feature: pop-out compose window
- More consistent design for both reply-to status and source status preview
- Fixed bugs too
- Make sure index.css is always above
2022-12-13 20:42:09 +08:00
Lim Chee Aun
3e80ee03f3 Simpler code for content enhancement
Also fixed some shortcodes not converted
2022-12-13 20:15:02 +08:00
Lim Chee Aun
19074844be Fix avatars inside text expander menu 2022-12-13 18:44:35 +08:00
Lim Chee Aun
7b7b8b9443 Different copy for editing 2022-12-13 01:14:52 +08:00
Lim Chee Aun
74ef381a9c Remove this console.log 2022-12-13 00:23:47 +08:00
Lim Chee Aun
de5c33a568 Fix gifv not loading 2022-12-13 00:23:37 +08:00
Lim Chee Aun
2a13571328 Remove unused hook 2022-12-13 00:23:12 +08:00
Lim Chee Aun
f649f60b5b Move the time to the right 2022-12-12 22:56:38 +08:00
Lim Chee Aun
4d09d24e00 Better card preview styling
Test in case all the texts are too long and overflowing
2022-12-12 22:43:47 +08:00
Lim Chee Aun
79f1b255d2 Slight layout adjustments 2022-12-12 22:15:13 +08:00
Lim Chee Aun
ad8ae165a6 Fix check before closing 2022-12-12 21:58:02 +08:00
Lim Chee Aun
5353a4535a New feature: Edit status!
Get's a bit hacky now
2022-12-12 21:54:31 +08:00
Lim Chee Aun
111bc27f96 Fix spacing inside the card preview 2022-12-12 21:53:06 +08:00
Lim Chee Aun
d32d9c62eb Style backtick inline codes
The tree walker code is generated via Copilot, hope it works
2022-12-12 21:51:59 +08:00
Lim Chee Aun
b988b10c3d Fixes and refactor for compose UI with media uploads
Somehow prettier (for CSS) start running properly
2022-12-12 16:27:44 +08:00
Lim Chee Aun
f7571f6df1 Need to show media attachments even when status size=s
This is because status is optional when there are media attachments

So if the status is empty, there's nothing to show at all lololol
2022-12-12 16:25:55 +08:00
Lim Chee Aun
e5fa7536e0 Prompt to double-confirm unfollow 2022-12-12 10:03:41 +08:00
Lim Chee Aun
299b638ac3 Attempt to fix videos not autoplaying on Mobile Safari
Fallback onClick to play in case it really still doesn't autoplay
2022-12-12 10:00:59 +08:00
Lim Chee Aun
0289d20d8b Use opacity instead of color
Allow skeleton styles to work
2022-12-12 09:50:15 +08:00
Lim Chee Aun
87029b43d4 Fix clicking on active carousel dot closes the media modal
Also make the active dot larger
2022-12-12 08:46:50 +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
d848304c80 Make play icon look nicer on videos 2022-12-11 15:26:49 +08:00
Lim Chee Aun
fe6bdfdeb3 This .plain conflicted with other styles, so create .plain2
Also… this looks completely different on Mobile Safari (iPhone)...

Maybe due to a better screen...
2022-12-11 15:00:51 +08:00
Lim Chee Aun
aeceb94219 Fix carousel actually not working properly
- Need intersection observer to tell JS that scroll snap happened
- Fix carousel dots not working
- Add fancy background overlay based on image average color
- Disable fade out if open in carousel
2022-12-11 14:35:57 +08:00
Lim Chee Aun
977176067e Fix too many borders on card (image) 2022-12-11 12:05:07 +08:00
Lim Chee Aun
9ad956049b Another attempt to fix GIFV not auto-playing on Mobile Safari 2022-12-11 11:20:24 +08:00
Lim Chee Aun
bc4551583b Special styling for "direct" posts 2022-12-11 10:56:31 +08:00
Lim Chee Aun
acfc06e5a6 Disable outline for form fields inside the toolbar button 2022-12-11 10:37:43 +08:00
Lim Chee Aun
5cb65f603d Possible fix for Mobile Safari not autoplaying gifv 2022-12-11 09:45:25 +08:00
Lim Chee Aun
039d4661fb Remove target=_blank from username links
Mobile Safari ignores the click preventDefault and not show the Account popover. Removing target_blank fixes this ignorance

Kinda hacky fix for now
2022-12-11 09:28:02 +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
f89ae6cdcd Try add description to card 2022-12-11 00:50:49 +08:00
Lim Chee Aun
bcf4fe6e5c Show domain on first line, chop off "www" 2022-12-11 00:20:23 +08:00
Lim Chee Aun
b69d9f3fa8 Manage to make the top carousel controls hide-able too 2022-12-10 23:39:12 +08:00
Lim Chee Aun
80b3432ccb Carousel very buggy on mobile. Add close button. 2022-12-10 22:27:00 +08:00
Lim Chee Aun
5797b9bc38 Only need focal positioning if not show original media 2022-12-10 21:58:40 +08:00
Lim Chee Aun
d884cddf16 Fix bugs on status page 2022-12-10 21:19:38 +08:00
Lim Chee Aun
4b93d13256 Make stats less significant 2022-12-10 20:48:23 +08:00
Lim Chee Aun
7f02a7f794 Use a better string length
Using `string-length` instead of `stringz` that's used by Mastodon
2022-12-10 20:46:56 +08:00
Lim Chee Aun
2fa86980c0 Should be .u-url, not .mention 2022-12-10 19:16:57 +08:00
Lim Chee Aun
ac87f557d6 This .mention style is going global 2022-12-10 19:16:43 +08:00
Lim Chee Aun
b26f1204c7 Enhance the account note and make sure links open in new window 2022-12-10 19:16:11 +08:00
Lim Chee Aun
12a64e4507 No need check relationship with self.
"Am I following myself??"
2022-12-10 19:15:30 +08:00
Lim Chee Aun
33c88d648a Loading/disabled state for actions (boost, favourite, bookmark)
Also catch any errors and alert them
2022-12-10 18:23:11 +08:00
Lim Chee Aun
2b9390a0a1 Initial commit 2022-12-10 17:14:48 +08:00