Commit graph

364 commits

Author SHA1 Message Date
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
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 90f1a9e529 Add text-side-adjust 2022-12-22 11:24:17 +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 6c0aedcd3e Fix new posts check not working 2022-12-22 08:39:01 +08:00
Lim Chee Aun c828f53f09 Lame fix for Flash of Welcome Page (FoWP)
useEffect runs after mounted so Welcome component appears for a split second
2022-12-21 20:34:24 +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 3b6f0f277e Rewrite whole scroll logic for Status page
Handle 3 cases, all written down in comments.

Crossing my fingers 🤞🤞🤞
2022-12-21 18:02:13 +08:00
Lim Chee Aun 237ceae356 Visual indicator that it tries to get new updates
Probably too subtle. Loader also only appears after 1s delay 😆
2022-12-21 08:54:39 +08:00
Lim Chee Aun becb8aa89d Emphasize mentions on notifications 2022-12-21 08:48:11 +08:00
Lim Chee Aun 3589438556 Fix clash of styles
.status got overriden 😂 (maybe I should scope the CSS or something)
2022-12-21 07:42:48 +08:00
Lim Chee Aun f6e3c979af Fix onClick not a function 2022-12-21 01:18:37 +08:00
Lim Chee Aun a9538e6cf0 Beautify log in page a little 2022-12-21 01:04:04 +08:00
Lim Chee Aun e80e09c398 Need a little padding as breathing space 2022-12-21 01:03:49 +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 04323f05ff Experimental: caching status + context
Cache all statuses from Status page so that it can load faster when
navigating between statuses. Uses sessionStorage
2022-12-21 01:02:48 +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 e9e664d871 Spread the timing function 2022-12-20 20:24:10 +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 8babc97877 Fix status jumping bug
This part is too complex.
The thread can get very fancy and it's impossible to handle all use-cases without a lot of code.
Solution is just fading all of them out while loading.
2022-12-20 15:32:31 +08:00
Lim Chee Aun c16b7764f2 Fancier transition/animation timing function 2022-12-20 15:13:49 +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 bbec6f2de9 Fix small-height videos too small
When it's too short, the native video player UI is cramped
2022-12-20 13:21:53 +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 6561f14d8b Menu popover need a little soft shadows 2022-12-20 09:28:12 +08:00
Lim Chee Aun 7d7473da15 Possible quick fix for menu popovers not working on iOS 2022-12-20 09:27:59 +08:00
Lim Chee Aun 75f03cf0eb Make everything inside buttons un-pointer-able
Gets annoying when getting e.target from interacting with buttons
2022-12-20 09:22:26 +08:00
Lim Chee Aun c116db79cc Have fun with welcome page 2022-12-20 00:16:45 +08:00
Lim Chee Aun ad2bebec0e Bump notifications limit 2022-12-20 00:11:55 +08:00
Lim Chee Aun 221ef84e4a Smaller font size for updates button 2022-12-19 19:24:51 +08:00
Lim Chee Aun 943c017928 Change from flex to grid, for the header
Flex is just too… flexible, I need something more rigid like grid
2022-12-19 19:24:39 +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 99357dc887 Shorten number for replies count 2022-12-19 17:38:20 +08:00
Lim Chee Aun 509c1d971e Return 0 if no html 2022-12-19 17:30:10 +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 772c4c7ba9 Remove this, it does weird blends 2022-12-19 16:35:35 +08:00
Lim Chee Aun 4339c4485d Move the comment button down a bit 2022-12-19 16:35:22 +08:00
Lim Chee Aun 8e8ab69528 Make sure the summary button is on top 2022-12-19 16:35:09 +08:00
Lim Chee Aun 9beee6cb37 Revert back to 'X' instead of '<'
It can be confused with the browser back button. It doesn't function as back button as well
2022-12-19 16:25:57 +08:00
Lim Chee Aun ee360403fd It's time for MVP PWA/ServiceWorker
- Not 100% offline yet, very minimal caching
- Fix logo a little
2022-12-19 14:51:56 +08:00
Lim Chee Aun 8c97dcc5bc 💅 Aesthetic changes 2022-12-19 13:38:16 +08:00
Lim Chee Aun 1826b01103 Make faded link color less faded 2022-12-19 10:06:02 +08:00
Lim Chee Aun e0ed7daa87 Styling fixes 2022-12-19 10:05:50 +08:00
Lim Chee Aun 681dfaaaff Auto-open details and hide summary button
Only show toggle comments button if there are many statuses
2022-12-19 10:05:27 +08:00
Lim Chee Aun 141f4a94dc Fix "show more" appearing below the faux padding 2022-12-19 10:04:50 +08:00
Lim Chee Aun 0a4898059b Set to 2 2022-12-19 10:04:11 +08:00
Lim Chee Aun d8e94270ad A little outline for elegance 2022-12-19 00:19:44 +08:00
Lim Chee Aun 9022a3ee12 Fix faux bottom spacer not working 2022-12-19 00:19:34 +08:00
Lim Chee Aun f110ac6812 Fix flash of un-nested comments 2022-12-19 00:19:19 +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 8ba0d15484 Preliminary steps to support safe areas 2022-12-18 21:07:40 +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 9eb40d165f Only snap to top when there are ancestors 2022-12-18 13:43:34 +08:00
Lim Chee Aun 762e525c68 Add profile metadata 2022-12-18 12:21:57 +08:00
Lim Chee Aun 548af18bee Only show "New posts" when more than 1 new post 2022-12-18 11:53:58 +08:00
Lim Chee Aun 03b319a517 Make loading new posts less destructive 2022-12-18 11:53:41 +08:00
Lim Chee Aun 16ae8af889 Replace deprecated methods 2022-12-18 11:52:53 +08:00
Lim Chee Aun 1ffcffa1f4 Try different style for "Read more" 2022-12-18 10:08:44 +08:00
Lim Chee Aun 6e09d5f836 Fix .insignificant class affecting other elements
Remove them because they were used in previous discarded design
2022-12-18 01:14:44 +08:00
Lim Chee Aun 72b0931554 Super lazy way to implement "only mentions" in Notifications
#OnlyMentions

Could have make another tab that makes another request to /notifications but I feel lazy
2022-12-18 01:04:26 +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 4bc4742e8c New logo
Just the nose
2022-12-17 21:29:17 +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 d0579a57d6 Fix bug when text nodes contain HTML <>
Text nodes don't escape them
2022-12-17 17:24:26 +08:00
Lim Chee Aun b9c762cf53 Nudge font size smaller for code 2022-12-17 17:23:31 +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 f896225707 Hmm remove debugging 2022-12-16 13:58:13 +08:00
Lim Chee Aun e09e1f16cd Somehow removed this window.close code
Bring it back + focus() for opener window
2022-12-16 13:54:17 +08:00
Lim Chee Aun ec0b76901a Disable this faded out hash character
It's annoying when folks post many many hashtags in a sentence but at the same time I need this to be the "identifier" that it's a link and clickable

As Phanpy doesn't handle hashtag links yet (in itself), this needs to be distinct.
2022-12-16 13:30:07 +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 7762c5b6a7 Yeah, this depends on the header height 2022-12-16 01:44:51 +08:00
Lim Chee Aun 715791f41e Try disable this less-bright images fancy CSS for dark mode
Copied from webkit blog but I guess this is a bit fancy

Also possibly conflicting with other styles
2022-12-16 01:37:19 +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 9717b94468 Smaller header for small screen 2022-12-16 00:57:21 +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