Lim Chee Aun
d5bceb1d81
Handle logged-out cases
2023-02-19 14:49:53 +08:00
Lim Chee Aun
7e65d8be5d
Make smaller statuses stand out in the carousel
2023-02-19 01:10:06 +08:00
Lim Chee Aun
5707da703f
Revert "Skeleton avatar should follow size"
...
This reverts commit f579a8bfb9
.
2023-02-18 01:45:44 +08:00
Lim Chee Aun
f579a8bfb9
Skeleton avatar should follow size
2023-02-17 19:08:19 +08:00
Lim Chee Aun
9e1f62e47b
Use instance check instead of authenticated check
2023-02-17 17:40:39 +08:00
Lim Chee Aun
d8e6d349a0
Fix undefined 'votes'
2023-02-17 11:00:34 +08:00
Lim Chee Aun
c37df11a25
Show pinned posts
2023-02-17 10:12:59 +08:00
Lim Chee Aun
4dae1d1576
Shorter copies
2023-02-16 19:10:26 +08:00
Lim Chee Aun
c01d3098b8
Add pencil
2023-02-13 09:22:03 +08:00
Lim Chee Aun
30b747527e
Okayyy this is dangerous
2023-02-12 14:24:27 +08:00
Lim Chee Aun
2f2e343115
Shorter skeleton
2023-02-11 21:09:36 +08:00
Lim Chee Aun
d9564bff72
Still need these fallbacks for now
2023-02-11 18:55:21 +08:00
Lim Chee Aun
129417bad3
Fix wrong links
2023-02-09 17:41:42 +08:00
Lim Chee Aun
c6c18aae09
Fix spoiler bug again
2023-02-07 12:56:26 +08:00
Lim Chee Aun
1357c1b2bd
Fix more edge cases after breaking changes
2023-02-06 16:35:03 +08:00
Lim Chee Aun
de411b4dff
Fix some posts can be spoiler but sensitive: false
2023-02-06 00:19:22 +08:00
Lim Chee Aun
a130743d4c
Breaking: refactor all masto API calls
...
Everything need to be instance-aware!
2023-02-06 00:17:19 +08:00
Lim Chee Aun
bbb3017b2d
Quietly handle hashtag links
...
No follow/unfollow yet.
2023-01-31 19:31:25 +08:00
Lim Chee Aun
292186e918
New UI experiment: media modal + status detail page
...
- Extracted out the media modal and media component from Status
- Use :has CSS selector to do most of the layout work
- Expecting edge case UI bugs
2023-01-29 15:23:53 +08:00
Lim Chee Aun
ae90b41aae
New feature: "Show all sensitive content" menu
2023-01-28 22:34:36 +08:00
Lim Chee Aun
aaeca7dd03
Refactor out a Timeline component
...
Also replace login() with createClient() for faster log in
2023-01-28 18:52:18 +08:00
Lim Chee Aun
ded6420c1a
Fallback if browser doesn't autoplay
2023-01-27 17:51:31 +08:00
Lim Chee Aun
3392f57462
Rewrite scrolling logic in carousel
...
Just normal scroll event is enough, don't need intersection observer
2023-01-25 20:37:59 +08:00
Lim Chee Aun
5fb123f228
Need to preserve white space in media descriptions
2023-01-25 00:40:05 +08:00
Lim Chee Aun
28281bb752
New component: Menu
...
It's time to do this menu thing the right way instead of hacky CSS
2023-01-24 20:56:43 +08:00
Lim Chee Aun
51eaf4f1f2
Replace blue-text buttons on carousel modal
2023-01-24 11:32:33 +08:00
Lim Chee Aun
cdb5435796
Nicer radius for multi-media container
2023-01-23 20:35:15 +08:00
Lim Chee Aun
56b6552d65
Show thread counter for small <Status /> too
2023-01-23 20:34:53 +08:00
Lim Chee Aun
4c05692ef5
This account resolving thingie is getting ridiculous
2023-01-22 20:29:48 +08:00
Lim Chee Aun
1439b22963
New feature: ALT badge in image carousel
...
Adjusted the layout and fix some styles as well
2023-01-22 16:27:00 +08:00
Lim Chee Aun
9bff95bcec
Replace preact-router with react-router
...
Need more routing powers, hopefully things don't break 🤞
2023-01-21 00:23:59 +08:00
Lim Chee Aun
1b6348fb08
Fix some links that are actually not user-links
2023-01-19 15:51:54 +08:00
Lim Chee Aun
d0880f5c56
Link to status page instead
2023-01-17 16:18:24 +08:00
Lim Chee Aun
0f5764580b
Fix bug due to votersCount can be null if multiple=false
2023-01-15 00:17:07 +08:00
Lim Chee Aun
c4236e6de7
New feature: thread numbering
2023-01-10 19:59:02 +08:00
Lim Chee Aun
13c3b8fa3b
Finally DRY this saving status code
2023-01-09 19:11:34 +08:00
Lim Chee Aun
8a8dad12c8
Better handling of audio
2023-01-09 01:17:16 +08:00
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
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
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
fea7145ac9
The mention is hidden *inside* spoiler text
2023-01-04 17:27:43 +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
07dff34e20
Show formatted duration for video media
2023-01-02 14:21:38 +08:00
Lim Chee Aun
951c93a070
Add link to media in carousel modal
2023-01-01 12:28:54 +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
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
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
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
cf42aab4b7
Experimental language selector in Compose field
2022-12-27 18:09:23 +08:00
Lim Chee Aun
3ac2a45244
Got trolled by @neet
2022-12-27 01:17:04 +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
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
cff13d53f0
Forgot to revert the optimistism
2022-12-25 13:22:41 +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
55ad4be580
Only show reply badge if not inside mentions
2022-12-24 01:22:25 +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
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
65c2fb3648
Special rounding precision for poll percentage
2022-12-22 14:59:36 +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
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
4acb6aa3c2
Subtle badges
2022-12-20 20:17:38 +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
1538400dc0
Oops, forgot to put confirm dialog before boosting
2022-12-20 10:09:05 +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
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
1ffcffa1f4
Try different style for "Read more"
2022-12-18 10:08:44 +08:00
Lim Chee Aun
7c30ba35e4
Show total count for fun
2022-12-18 00:13:56 +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
e6ed64cfd0
Fix auto display: none not working
...
`this` probably refers to something else
2022-12-17 14:38:21 +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
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
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
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
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
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
5353a4535a
New feature: Edit status!
...
Get's a bit hacky now
2022-12-12 21:54:31 +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
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
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
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
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
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
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
2fa86980c0
Should be .u-url, not .mention
2022-12-10 19:16:57 +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