Commit graph

203 commits

Author SHA1 Message Date
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 ee9bfe6331 Lots of tiny adjustments 2023-01-07 14:45:04 +08:00
Lim Chee Aun ac557e1271 Delete cache in SW before reloading status page
Seems kinda hacky… probably might cause new side effects
2023-01-06 21:29:16 +08:00
Lim Chee Aun fffc8cc983 Further grouping of notifications 2023-01-06 12:51:53 +08:00
Lim Chee Aun de45a0f9d5 Update useScroll to check distance in threshold instead of pixels 2023-01-05 15:29:11 +08:00
Lim Chee Aun 04ccf8aca9 Replace @github/relative-time-element with dayjs 2023-01-05 10:50:27 +08:00
Lim Chee Aun 8e19d098eb Test add this condition to see how it works 2023-01-04 17:12:44 +08:00
Lim Chee Aun b0271c50ae Fix forgot to put back the fake <li> 2023-01-03 00:56:11 +08:00
Lim Chee Aun dbf9c22ea5 Less obstrusive "New posts" 2023-01-03 00:52:16 +08:00
Lim Chee Aun d15b1fe03e Fix route() actually not working 2023-01-03 00:48:36 +08:00
Lim Chee Aun 9ea941368d More fixes 2023-01-03 00:27:47 +08:00
Lim Chee Aun d235f56cff Always clear 'new' when load from beginning 2023-01-02 23:19:12 +08:00
Lim Chee Aun 39124ccc70 Add experimental scroll-based effects
- Scroll to top = refresh Home
- Scroll up/down = show/hide header and compose button
- Scroll near bottom = load next statuses
- Move Compose button to only at Home instead of 'App' level
2023-01-02 21:36:24 +08:00
Lim Chee Aun 44f179a69f Beautify notifications slightly 2023-01-02 14:42:28 +08:00
Lim Chee Aun 8099fedf82 Don't store instances list inside JS bundle 2023-01-01 21:02:06 +08:00
Lim Chee Aun 727b944f3b toLowerCase() all the instance URLs! 2023-01-01 20:59:55 +08:00
Lim Chee Aun bfaefbe178 Disable autocapitalize on input field
And disable a bunch of others too
2023-01-01 20:53:40 +08:00
Lim Chee Aun d2d8571b3f Fix updates button got cut off in larger viewport 2023-01-01 19:24:08 +08:00
Lim Chee Aun b62cff4d0e Different gradient for welcome 2023-01-01 17:19:07 +08:00
Lim Chee Aun 2031e88d87 Better handling of failures
Some mastodon instances are getting hit hard
2023-01-01 15:28:07 +08:00
Lim Chee Aun 842db90f9c Handle context API call fail error 2023-01-01 12:02:11 +08:00
Lim Chee Aun ac91dc7983 Make this manual opt-in 2023-01-01 08:51:56 +08:00
Lim Chee Aun 895602e446 Gosh this need to be low threshold
It's actually % of the full height of the element. So if the status is super long (100K chars), it'll never be 0.25
2022-12-31 23:58:48 +08:00
Lim Chee Aun b12b0c588d Experimental j,k,o,esc,backspace shortcuts 2022-12-31 09:52:31 +08:00
Lim Chee Aun c0234dd26e Add focus for notification block too 2022-12-30 23:08:55 +08:00
Lim Chee Aun d605fc6ebe Fix missing border 2022-12-30 20:39:27 +08:00
Lim Chee Aun 9201f7a118 First step in making things focusable 2022-12-30 20:37:57 +08:00
Lim Chee Aun 123d2469f6 Don't show hero pointer when loading 2022-12-30 13:26:05 +08:00
Lim Chee Aun 3338c49c25 Fix threshold for larger-than-viewport statuses 2022-12-29 16:15:58 +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 353c911232 Temporarily disable this now 2022-12-29 10:27:36 +08:00
Lim Chee Aun 7e3733d79e Delay hero status fetch if already cached
The context call is more important
2022-12-28 18:06:05 +08:00
Lim Chee Aun 2dca345818 More breathing space after the negative top margin hack 2022-12-28 00:24:36 +08:00
Lim Chee Aun e7cff25337 Fix wrong logic for silent fail
Some mastodon instances are getting swamped
2022-12-27 21:30:18 +08:00
Lim Chee Aun fb88129ae7 Check for ref before access scrollTop 2022-12-27 09:05:45 +08:00
Lim Chee Aun 6da4834b71 Change back to limit 1
Sometimes, there's really just one new status update.
2022-12-26 01:09:53 +08:00
Lim Chee Aun c75bf36345 Try dblclick for reloading
Not sure if this'll work on touch-based devices. Also good for debugging.
2022-12-25 23:53:18 +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 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 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 8eec844781 Scroll-to-top for Notifications 2022-12-24 17:54:42 +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 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 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 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 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 de409bd668 Fix empty statuses when (pre)loading homeNew 2022-12-22 21:38:43 +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 6c0aedcd3e Fix new posts check not working 2022-12-22 08:39:01 +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 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 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 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 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 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 99357dc887 Shorten number for replies count 2022-12-19 17:38:20 +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 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 f110ac6812 Fix flash of un-nested comments 2022-12-19 00:19:19 +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 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 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 665b908698 Put names into every export 2022-12-16 13:27:04 +08:00
Lim Chee Aun 94dd2bf627 Fix spoiler content accidentally get leaked in document.title
- Also add quotes
- Add comment to why use 64 chars (soft) limit
2022-12-15 17:14:33 +08:00
Lim Chee Aun 95519a538e Some breathing space for "Show more" button 2022-12-15 17:00:11 +08:00
Lim Chee Aun 56cab34a9c Test add last build time and commit hash 2022-12-15 14:42:34 +08:00
Lim Chee Aun ca98863c01 Fix bug when the first notification is already a grouped one 2022-12-15 13:11:28 +08:00
Lim Chee Aun ca71d45a77 Fix wrong isSelf logic 2022-12-15 01:45:36 +08:00
Lim Chee Aun 735cbf05b7 Very embarrassing mistake
Why do I even name such bad variable names
2022-12-14 22:53:14 +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 6195f45800 Remove unused code 2022-12-13 20:42:19 +08:00
Lim Chee Aun 3396aa2512 Fix InView creating div inside ul
Make it create li but only observe one of the skeleton instead
2022-12-12 22:42:58 +08:00
Lim Chee Aun 21cfec3386 Remove console logs 2022-12-12 08:47:11 +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 6f3eae15b6 Fix missing boost icon 2022-12-11 17:10:10 +08:00
Lim Chee Aun 9f9395d965 Better copy to differentiate poll created vs voted 2022-12-11 12:15:39 +08:00
Lim Chee Aun 3bee69dc84 Clear notificationsNew when loading fresh 2022-12-11 12:07:36 +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 f41ca129c2 Fix Notifications link on Home header triggering scroll-to-top 2022-12-10 23:45:52 +08:00
Lim Chee Aun b3941462d6 Facepalm moment
s/created_at/createdAt
2022-12-10 21:23:19 +08:00
Lim Chee Aun d884cddf16 Fix bugs on status page 2022-12-10 21:19:38 +08:00
Lim Chee Aun 46d5e20008 Code cleanup on Settings page 2022-12-10 20:48:48 +08:00
Lim Chee Aun 33637c76d1 Let's change this and see if it's annoying 2022-12-10 20:48:09 +08:00
Lim Chee Aun d11a47bdbc Add link to github repo and myself 2022-12-10 20:47:34 +08:00
Lim Chee Aun 3778a11629 Fix logo 2022-12-10 17:38:20 +08:00
Lim Chee Aun 2b9390a0a1 Initial commit 2022-12-10 17:14:48 +08:00