From efa4ba63eba5c4c5d6c5a45cb8f5c8895f4e3775 Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Tue, 23 May 2023 19:16:24 +0800 Subject: [PATCH 1/4] Try re-post if idempotency key fails --- src/components/compose.jsx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/components/compose.jsx b/src/components/compose.jsx index abe4621b..4515b469 100644 --- a/src/components/compose.jsx +++ b/src/components/compose.jsx @@ -816,9 +816,14 @@ function Compose({ skipThreading: true, }); } else { - newStatus = await masto.v1.statuses.create(params, { - idempotencyKey: UID.current, - }); + try { + newStatus = await masto.v1.statuses.create(params, { + idempotencyKey: UID.current, + }); + } catch (_) { + // If idempotency key fails, try again without it + newStatus = await masto.v1.statuses.create(params); + } } setUIState('default'); From ddb64e3022c20fc6e5c6c3d52c88ecb97a11c4ed Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Wed, 24 May 2023 17:16:45 +0800 Subject: [PATCH 2/4] Beautify 'Show more' button on status page --- src/app.css | 28 ++++++++++++++++++++++++++++ src/pages/status.jsx | 23 ++++++++++++++++++----- 2 files changed, 46 insertions(+), 5 deletions(-) diff --git a/src/app.css b/src/app.css index 9defe76b..5855581c 100644 --- a/src/app.css +++ b/src/app.css @@ -642,6 +642,34 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) { background-image: none; } +.timeline .show-more { + padding-left: calc(var(--line-end) + var(--line-margin-end)) !important; + text-align: left; + background-color: transparent !important; + backdrop-filter: none !important; + position: relative; + border-radius: 0; + padding-block: 16px !important; +} +.timeline .show-more:hover { + filter: none !important; + color: var(--text-color) !important; + background-color: var(--bg-faded-blur-color) !important; +} +.timeline .show-more:before { + content: ''; + position: absolute; + top: 10px; + left: var(--line-start); + width: var(--line-diameter); + height: var(--line-diameter); + border-radius: var(--line-radius); + border-style: solid; + border-width: var(--line-width); + border-color: transparent transparent var(--comment-line-color) transparent; + transform: rotate(45deg); +} + .status-loading { text-align: center; color: var(--text-insignificant-color); diff --git a/src/pages/status.jsx b/src/pages/status.jsx index 2ea035c9..490b081e 100644 --- a/src/pages/status.jsx +++ b/src/pages/status.jsx @@ -337,6 +337,7 @@ function StatusThread({ id, closeLink = '/', instance: propInstance }) { }, ...nestedDescendants.map((s) => ({ id: s.id, + account: s.account, accountID: s.account.id, descendant: true, thread: s.account.id === heroStatus.account.id, @@ -974,15 +975,27 @@ function StatusThread({ id, closeLink = '/', instance: propInstance }) {
  • )} From 79aaa04af3179b69a20605732b7eb740b41cc761 Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Wed, 24 May 2023 17:18:22 +0800 Subject: [PATCH 3/4] Add ID for manifest --- .env | 1 + vite.config.js | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.env b/.env index 9a845db8..787c8d7e 100644 --- a/.env +++ b/.env @@ -1,2 +1,3 @@ VITE_CLIENT_NAME=Phanpy +VITE_CLIENT_ID=social.phanpy VITE_WEBSITE=https://phanpy.social \ No newline at end of file diff --git a/vite.config.js b/vite.config.js index aecbde7f..4eaec943 100644 --- a/vite.config.js +++ b/vite.config.js @@ -9,8 +9,11 @@ import { VitePWA } from 'vite-plugin-pwa'; import removeConsole from 'vite-plugin-remove-console'; const { NODE_ENV } = process.env; -const { VITE_CLIENT_NAME: CLIENT_NAME, VITE_APP_ERROR_LOGGING: ERROR_LOGGING } = - loadEnv('production', process.cwd()); +const { + VITE_CLIENT_NAME: CLIENT_NAME, + VITE_CLIENT_ID: CLIENT_ID, + VITE_APP_ERROR_LOGGING: ERROR_LOGGING, +} = loadEnv('production', process.cwd()); const now = new Date(); const commitHash = execSync('git rev-parse --short HEAD').toString().trim(); @@ -51,6 +54,7 @@ export default defineConfig({ ]), VitePWA({ manifest: { + id: CLIENT_ID, name: CLIENT_NAME, short_name: CLIENT_NAME, description: 'Minimalistic opinionated Mastodon web client', From 49c04a4259e7cb273e7b81718a0969efbebcd22e Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Fri, 26 May 2023 13:31:02 +0800 Subject: [PATCH 4/4] Try go back if close media modal --- src/pages/status.jsx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/pages/status.jsx b/src/pages/status.jsx index 490b081e..0cf9043e 100644 --- a/src/pages/status.jsx +++ b/src/pages/status.jsx @@ -55,6 +55,7 @@ function resetScrollPosition(id) { function StatusPage(params) { const { id } = params; const { masto, instance } = api({ instance: params.instance }); + const snapStates = useSnapshot(states); const [searchParams, setSearchParams] = useSearchParams(); const mediaParam = searchParams.get('media'); const mediaOnlyParam = searchParams.get('media-only'); @@ -117,12 +118,16 @@ function StatusPage(params) { instance={instance} index={mediaIndex - 1} onClose={() => { - if (showMediaOnly) { - location.hash = closeLink; + if (snapStates.prevLocation) { + history.back(); } else { - searchParams.delete('media'); - searchParams.delete('mediaStatusID'); - setSearchParams(searchParams); + if (showMediaOnly) { + location.hash = closeLink; + } else { + searchParams.delete('media'); + searchParams.delete('mediaStatusID'); + setSearchParams(searchParams); + } } }} />