Merge 'upstream/dev'

This commit is contained in:
sup39 2024-05-18 10:01:37 +08:00
commit b54f356bb1
Signed by: sup39
GPG key ID: 111C00916C1641E5
13 changed files with 1675 additions and 3074 deletions

View file

@ -12,7 +12,7 @@ jobs:
PR_NUMBER: ${{github.event.number}} PR_NUMBER: ${{github.event.number}}
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4.1.4 uses: actions/checkout@v4.1.5
- name: Setup node - name: Setup node
uses: actions/setup-node@v4.0.2 uses: actions/setup-node@v4.0.2
with: with:

View file

@ -12,7 +12,7 @@ jobs:
- name: 'CLA Assistant' - name: 'CLA Assistant'
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target' if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
# Beta Release # Beta Release
uses: cla-assistant/github-action@v2.3.2 uses: cla-assistant/github-action@v2.4.0
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# the below token should have repo scope and must be manually added by you in the repository's secret # the below token should have repo scope and must be manually added by you in the repository's secret

View file

@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4.1.4 uses: actions/checkout@v4.1.5
- name: Build Docker image - name: Build Docker image
uses: docker/build-push-action@v5.3.0 uses: docker/build-push-action@v5.3.0
with: with:

View file

@ -14,7 +14,7 @@ jobs:
pull-requests: write pull-requests: write
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4.1.4 uses: actions/checkout@v4.1.5
- name: NPM Lockfile Changes - name: NPM Lockfile Changes
uses: codepunkt/npm-lockfile-changes@b40543471c36394409466fdb277a73a0856d7891 uses: codepunkt/npm-lockfile-changes@b40543471c36394409466fdb277a73a0856d7891
with: with:

View file

@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4.1.4 uses: actions/checkout@v4.1.5
- name: Setup node - name: Setup node
uses: actions/setup-node@v4.0.2 uses: actions/setup-node@v4.0.2
with: with:

View file

@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4.1.4 uses: actions/checkout@v4.1.5
- name: Setup node - name: Setup node
uses: actions/setup-node@v4.0.2 uses: actions/setup-node@v4.0.2
with: with:
@ -52,7 +52,7 @@ jobs:
gpg --export | xxd -p gpg --export | xxd -p
echo '${{ secrets.GNUPG_PASSPHRASE }}' | gpg --batch --yes --pinentry-mode loopback --passphrase-fd 0 --armor --detach-sign cinny-${{ steps.vars.outputs.tag }}.tar.gz echo '${{ secrets.GNUPG_PASSPHRASE }}' | gpg --batch --yes --pinentry-mode loopback --passphrase-fd 0 --armor --detach-sign cinny-${{ steps.vars.outputs.tag }}.tar.gz
- name: Upload tagged release - name: Upload tagged release
uses: softprops/action-gh-release@9d7c94cfd0a1f3ed45544c887983e9fa900f0564 uses: softprops/action-gh-release@69320dbe05506a9a39fc8ae11030b214ec2d1f87
with: with:
files: | files: |
cinny-${{ steps.vars.outputs.tag }}.tar.gz cinny-${{ steps.vars.outputs.tag }}.tar.gz
@ -66,7 +66,7 @@ jobs:
packages: write packages: write
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4.1.4 uses: actions/checkout@v4.1.5
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v3.0.0 uses: docker/setup-qemu-action@v3.0.0
- name: Set up Docker Buildx - name: Set up Docker Buildx

View file

@ -11,7 +11,7 @@ RUN npm run build
## App ## App
FROM nginx:1.25.5-alpine FROM nginx:1.26.0-alpine
COPY --from=builder /src/dist /app COPY --from=builder /src/dist /app

4651
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -3,6 +3,7 @@
"version": "3.2.0", "version": "3.2.0",
"description": "Yet another matrix client", "description": "Yet another matrix client",
"main": "index.js", "main": "index.js",
"type": "module",
"engines": { "engines": {
"node": ">=16.0.0" "node": ">=16.0.0"
}, },
@ -52,7 +53,7 @@
"linkifyjs": "4.0.2", "linkifyjs": "4.0.2",
"matrix-js-sdk": "29.1.0", "matrix-js-sdk": "29.1.0",
"millify": "6.1.0", "millify": "6.1.0",
"pdfjs-dist": "3.10.111", "pdfjs-dist": "4.2.67",
"prismjs": "1.29.0", "prismjs": "1.29.0",
"prop-types": "15.8.1", "prop-types": "15.8.1",
"react": "18.2.0", "react": "18.2.0",
@ -67,7 +68,7 @@
"react-modal": "3.16.1", "react-modal": "3.16.1",
"react-range": "1.8.14", "react-range": "1.8.14",
"react-router-dom": "6.20.0", "react-router-dom": "6.20.0",
"sanitize-html": "2.8.0", "sanitize-html": "2.12.1",
"slate": "0.94.1", "slate": "0.94.1",
"slate-history": "0.93.0", "slate-history": "0.93.0",
"slate-react": "0.98.4", "slate-react": "0.98.4",
@ -93,15 +94,15 @@
"eslint": "8.29.0", "eslint": "8.29.0",
"eslint-config-airbnb": "19.0.4", "eslint-config-airbnb": "19.0.4",
"eslint-config-prettier": "8.5.0", "eslint-config-prettier": "8.5.0",
"eslint-plugin-import": "2.26.0", "eslint-plugin-import": "2.29.1",
"eslint-plugin-jsx-a11y": "6.6.1", "eslint-plugin-jsx-a11y": "6.6.1",
"eslint-plugin-react": "7.31.11", "eslint-plugin-react": "7.31.11",
"eslint-plugin-react-hooks": "4.6.0", "eslint-plugin-react-hooks": "4.6.0",
"mini-svg-data-uri": "1.4.4",
"prettier": "2.8.1", "prettier": "2.8.1",
"sass": "1.56.2", "sass": "1.56.2",
"typescript": "4.9.4", "typescript": "4.9.4",
"vite": "5.0.13", "vite": "5.0.13",
"vite-plugin-static-copy": "0.13.0" "vite-plugin-static-copy": "1.0.4",
"vite-plugin-top-level-await": "1.4.1"
} }
} }

View file

@ -41,8 +41,9 @@ TabItem.propTypes = {
function Tabs({ items, defaultSelected, onSelect }) { function Tabs({ items, defaultSelected, onSelect }) {
const [selectedItem, setSelectedItem] = useState(items[defaultSelected]); const [selectedItem, setSelectedItem] = useState(items[defaultSelected]);
const handleTabSelection = (item, index) => { const handleTabSelection = (item, index, target) => {
if (selectedItem === item) return; if (selectedItem === item) return;
target.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });
setSelectedItem(item); setSelectedItem(item);
onSelect(item, index); onSelect(item, index);
}; };
@ -57,7 +58,7 @@ function Tabs({ items, defaultSelected, onSelect }) {
selected={selectedItem.text === item.text} selected={selectedItem.text === item.text}
iconSrc={item.iconSrc} iconSrc={item.iconSrc}
disabled={item.disabled} disabled={item.disabled}
onClick={() => handleTabSelection(item, index)} onClick={(e) => handleTabSelection(item, index, e.currentTarget)}
> >
{item.text} {item.text}
</TabItem> </TabItem>

View file

@ -107,7 +107,7 @@ const transformATag: Transformer = (tagName, attribs) => ({
const transformImgTag: Transformer = (tagName, attribs) => { const transformImgTag: Transformer = (tagName, attribs) => {
const { src } = attribs; const { src } = attribs;
if (src.startsWith('mxc://') === false) { if (typeof src === 'string' && src.startsWith('mxc://') === false) {
return { return {
tagName: 'a', tagName: 'a',
attribs: { attribs: {

View file

@ -2,11 +2,11 @@ import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react'; import react from '@vitejs/plugin-react';
import { wasm } from '@rollup/plugin-wasm'; import { wasm } from '@rollup/plugin-wasm';
import { viteStaticCopy } from 'vite-plugin-static-copy'; import { viteStaticCopy } from 'vite-plugin-static-copy';
import { vanillaExtractPlugin } from "@vanilla-extract/vite-plugin"; import { vanillaExtractPlugin } from '@vanilla-extract/vite-plugin';
import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill'; import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill';
import inject from '@rollup/plugin-inject'; import inject from '@rollup/plugin-inject';
import { svgLoader } from './viteSvgLoader' import topLevelAwait from 'vite-plugin-top-level-await';
import buildConfig from "./build.config" import buildConfig from './build.config';
const copyFiles = { const copyFiles = {
targets: [ targets: [
@ -15,8 +15,9 @@ const copyFiles = {
dest: '', dest: '',
}, },
{ {
src: 'node_modules/pdfjs-dist/build/pdf.worker.min.js', src: 'node_modules/pdfjs-dist/build/pdf.worker.min.mjs',
dest: '', dest: '',
rename: 'pdf.worker.min.js',
}, },
{ {
src: 'netlify.toml', src: 'netlify.toml',
@ -39,7 +40,7 @@ const copyFiles = {
dest: 'twemoji/', dest: 'twemoji/',
}, },
], ],
} };
export default defineConfig({ export default defineConfig({
appType: 'spa', appType: 'spa',
@ -50,34 +51,37 @@ export default defineConfig({
host: true, host: true,
}, },
plugins: [ plugins: [
topLevelAwait({
// The export name of top-level await promise for each chunk module
promiseExportName: '__tla',
// The function to generate import names of top-level await promise in each chunk module
promiseImportName: (i) => `__tla_${i}`,
}),
viteStaticCopy(copyFiles), viteStaticCopy(copyFiles),
vanillaExtractPlugin(), vanillaExtractPlugin(),
svgLoader(),
wasm(), wasm(),
react(), react(),
], ],
optimizeDeps: { optimizeDeps: {
esbuildOptions: { esbuildOptions: {
define: { define: {
global: 'globalThis' global: 'globalThis',
}, },
plugins: [ plugins: [
// Enable esbuild polyfill plugins // Enable esbuild polyfill plugins
NodeGlobalsPolyfillPlugin({ NodeGlobalsPolyfillPlugin({
process: false, process: false,
buffer: true, buffer: true,
}), }),
] ],
} },
}, },
build: { build: {
outDir: 'dist', outDir: 'dist',
sourcemap: true, sourcemap: true,
copyPublicDir: false, copyPublicDir: false,
rollupOptions: { rollupOptions: {
plugins: [ plugins: [inject({ Buffer: ['buffer', 'Buffer'] })],
inject({ Buffer: ['buffer', 'Buffer'] }) },
]
}
}, },
}); });

View file

@ -1,16 +0,0 @@
import svgToMiniDataURI from 'mini-svg-data-uri';
import type { Plugin } from 'rollup';
import fs from 'fs';
// TODO: remove this once https://github.com/vitejs/vite/pull/2909 gets merged
export const svgLoader = (): Plugin => ({
name: 'vite-svg-patch-plugin',
transform: (code, id) => {
if (id.endsWith('.svg')) {
const extractedSvg = fs.readFileSync(id, 'utf8');
const datauri = svgToMiniDataURI.toSrcset(extractedSvg);
return `export default "${datauri}"`;
}
return code;
},
});