diff --git a/.github/workflows/prodtag.yml b/.github/workflows/prodtag.yml index bf206fc0..8d62deb7 100644 --- a/.github/workflows/prodtag.yml +++ b/.github/workflows/prodtag.yml @@ -14,15 +14,17 @@ jobs: - uses: actions/checkout@v4 with: ref: production - - run: git tag "`date +%Y.%m.%d`.`git rev-parse --short HEAD`" $(git rev-parse HEAD) - - run: git push --tags + # - run: git tag "`date +%Y.%m.%d`.`git rev-parse --short HEAD`" $(git rev-parse HEAD) + # - run: git push --tags - uses: actions/setup-node@v3 with: node-version: 18 - run: npm ci && npm run build - run: cd dist && zip -r ../phanpy-dist.zip . && cd .. + - id: tag_name + run: echo ::set-output name=tag_name::$(date +%Y.%m.%d).$(git rev-parse --short HEAD) - uses: softprops/action-gh-release@v1 with: - tag_name: ${{ github.ref_name }} + tag_name: ${{ steps.tag_name.outputs.tag_name }} generate_release_notes: true files: phanpy-dist.zip diff --git a/public/sw.js b/public/sw.js index e47c2cdc..03ad471d 100644 --- a/public/sw.js +++ b/public/sw.js @@ -179,12 +179,12 @@ self.addEventListener('notificationclick', (event) => { console.log('NOTIFICATION CLICK navigate', url); if (bestClient) { console.log('NOTIFICATION CLICK postMessage', bestClient); + bestClient.focus(); bestClient.postMessage?.({ type: 'notification', id: tag, accessToken: access_token, }); - bestClient.focus(); } else { console.log('NOTIFICATION CLICK openWindow', url); await self.clients.openWindow(url); diff --git a/src/app.css b/src/app.css index fcf4b0cd..b697a1d3 100644 --- a/src/app.css +++ b/src/app.css @@ -676,6 +676,10 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) { position: relative; border-radius: 0; padding-block: 16px !important; + + .avatars-bunch > .avatar:not(:first-child) { + margin-left: -4px; + } } .timeline .show-more:hover { filter: none !important; @@ -2116,6 +2120,13 @@ ul.link-list li a .icon { transparent ); align-items: center; + transition: opacity 0.3s ease-out; + + &.loading, + .loading > & { + pointer-events: none; + opacity: 0.5; + } } .filter-bar.centered { justify-content: center; @@ -2133,14 +2144,19 @@ ul.link-list li a .icon { text-decoration: none; white-space: nowrap; border: 2px solid transparent; - transition: all 0.3s ease-out; + transition: border-color 0.3s ease-out; display: inline-flex; align-items: center; gap: 8px; } -.filter-bar > a:is(:hover, :focus) { +.filter-bar > a:focus-visible { border-color: var(--link-light-color); } +@media (hover: hover) { + .filter-bar > a:hover { + border-color: var(--link-light-color); + } +} .filter-bar > a > * { vertical-align: middle; } diff --git a/src/components/account-info.jsx b/src/components/account-info.jsx index 3e8bd862..a063d611 100644 --- a/src/components/account-info.jsx +++ b/src/components/account-info.jsx @@ -550,11 +550,13 @@ function AccountInfo({ tabIndex={0} to={accountLink} onClick={() => { - states.showAccount = false; - states.showGenericAccounts = { - heading: 'Followers', - fetchAccounts: fetchFollowers, - }; + // states.showAccount = false; + setTimeout(() => { + states.showGenericAccounts = { + heading: 'Followers', + fetchAccounts: fetchFollowers, + }; + }, 0); }} > {!!familiarFollowers.length && ( @@ -581,11 +583,13 @@ function AccountInfo({ tabIndex={0} to={accountLink} onClick={() => { - states.showAccount = false; - states.showGenericAccounts = { - heading: 'Following', - fetchAccounts: fetchFollowing, - }; + // states.showAccount = false; + setTimeout(() => { + states.showGenericAccounts = { + heading: 'Following', + fetchAccounts: fetchFollowing, + }; + }, 0); }} > @@ -597,13 +601,13 @@ function AccountInfo({ { - hideAllModals(); - } - } + // onClick={ + // standalone + // ? undefined + // : () => { + // hideAllModals(); + // } + // } > {shortenNumber(statusesCount)} @@ -626,9 +630,9 @@ function AccountInfo({