Commit graph

326 commits

Author SHA1 Message Date
Lim Chee Aun 86df9fd9f8 Tap media to toggle carousel controls 2022-12-28 19:31:08 +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 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 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 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 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 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 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