Commit graph

326 commits

Author SHA1 Message Date
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 096712a9dd No lazy loading when loading in the carousel 2023-01-06 22:08:22 +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 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 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 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 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 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 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 f8821d530d Maybe these might help a little 2023-01-02 22:02:21 +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 727b944f3b toLowerCase() all the instance URLs! 2023-01-01 20:59:55 +08:00
Lim Chee Aun 0d92f65f7e Esc for compose field 2023-01-01 19:41:42 +08:00
Lim Chee Aun 4d7aeca10f Make skeleton unpointerable 2023-01-01 16:09:10 +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 951c93a070 Add link to media in carousel modal 2023-01-01 12:28:54 +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 52d5756d44 Remove unused code 2022-12-31 09:51:28 +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 9201f7a118 First step in making things focusable 2022-12-30 20:37:57 +08:00
Lim Chee Aun a409ff6712 Some images are just… too high 2022-12-30 13:37:59 +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 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 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 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