From b987b525ef42ca0cf49778728a07200d24b4e019 Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Thu, 15 Dec 2022 12:38:30 +0800 Subject: [PATCH 1/4] Use dvh wherever possible --- src/app.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/app.css b/src/app.css index 4831ad3a..8730242c 100644 --- a/src/app.css +++ b/src/app.css @@ -307,6 +307,7 @@ a.mention span { border: 1px solid var(--divider-color); overflow: auto; max-height: 90vh; + max-height: 90dvh; position: relative; } .box > :is(h1, h2, h3):first-of-type { @@ -464,6 +465,7 @@ button.carousel-dot[disabled].active { .sheet { align-self: flex-end; max-height: 90vh; + max-height: 90dvh; overflow: auto; overflow-x: hidden; background-color: var(--bg-color); From fc235024aa2d47813d2fc016b2796c03068c0b30 Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Thu, 15 Dec 2022 13:03:20 +0800 Subject: [PATCH 2/4] Handle pop-in case when there's already a Compose field open Show confirmation first before popping-in --- src/components/compose.jsx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/components/compose.jsx b/src/components/compose.jsx index 0d2f5332..5694477d 100644 --- a/src/components/compose.jsx +++ b/src/components/compose.jsx @@ -408,6 +408,13 @@ function Compose({ return; } + if (window.opener.__STATES__.showCompose) { + const yes = confirm( + 'Looks like you already have a compose field open in the parent window. Popping in this window will discard the changes you made in the parent window. Continue?', + ); + if (!yes) return; + } + const mediaAttachmentsWithIDs = mediaAttachments.filter( (media) => media.id, ); From ca98863c0124c1bafe7fc907248f0bf8b5766e38 Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Thu, 15 Dec 2022 13:11:28 +0800 Subject: [PATCH 3/4] Fix bug when the first notification is already a grouped one --- src/pages/notifications.jsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pages/notifications.jsx b/src/pages/notifications.jsx index 3ff045ab..7652878f 100644 --- a/src/pages/notifications.jsx +++ b/src/pages/notifications.jsx @@ -147,7 +147,12 @@ function NotificationsList({ notifications, emptyCopy }) { // Create new flat list of notifications // Combine sibling notifications based on type and status id, ignore the id // Concat all notification.account into an array of _accounts - const cleanNotifications = [notifications[0]]; + const cleanNotifications = [ + { + ...notifications[0], + _accounts: [notifications[0].account], + }, + ]; for (let i = 1, j = 0; i < notifications.length; i++) { const notification = notifications[i]; const cleanNotification = cleanNotifications[j]; From 767b092ac60fe422b3c708627c3c300e86151a59 Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Thu, 15 Dec 2022 13:14:01 +0800 Subject: [PATCH 4/4] Update README --- README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 614b82a1..82b4c7ae 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,9 @@ Phanpy This is an alternative web client for [Mastodon](https://joinmastodon.org/). +🔗 **Production**: https://phanpy.social
+🔗 **Development**: https://dev.phanpy.social + Everything is designed and engineered for my own use case, following my taste and vision. This is a personal side project for me to learn about Mastodon and experiment with new UI/UX ideas. 🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧 @@ -21,9 +24,10 @@ Everything is designed and engineered for my own use case, following my taste an ## Features -- Minimalistic UI -- Accounts switching -- Theme switching (light, dark, auto) +- 👪 Multiple accounts +- 🪟 Compose window pop-out/in +- 🌗 Light/dark/auto theme +- 🔔 Grouped notifications ## Design decisions