From 3e9a784ab88bce1747521ff24a5101d632c3bd99 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sat, 11 Jan 2025 16:53:16 +0800 Subject: [PATCH] :sparkles: Product details --- .eslintrc.cjs | 7 +- bun.lockb | Bin 268478 -> 306145 bytes package.json | 9 +- src/main/index.ts | 4 +- src/renderer/src/App.tsx | 3 + src/renderer/src/components/MaAppBar.tsx | 2 +- src/renderer/src/pages/Landing.tsx | 5 +- src/renderer/src/pages/products/Details.tsx | 198 ++++++++++++++++++++ tailwind.config.js | 2 +- 9 files changed, 222 insertions(+), 8 deletions(-) create mode 100644 src/renderer/src/pages/products/Details.tsx diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 63c9779..954f8bd 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -4,6 +4,9 @@ module.exports = { 'plugin:react/recommended', 'plugin:react/jsx-runtime', '@electron-toolkit/eslint-config-ts/recommended', - '@electron-toolkit/eslint-config-prettier' - ] + '@electron-toolkit/eslint-config-prettier', + ], + rules: { + '@typescript-eslint/no-explicit-any': 'off', + }, } diff --git a/bun.lockb b/bun.lockb index dd4e005161c886bda25bca99d3907f8760b8501b..005569946bedc382f464e99801398b08056e38f7 100755 GIT binary patch delta 78849 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 delta 54629 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 diff --git a/package.json b/package.json index 4a4cc50..cd54fcb 100644 --- a/package.json +++ b/package.json @@ -28,9 +28,16 @@ "@fontsource/roboto": "^5.1.1", "@mui/icons-material": "^6.3.1", "@mui/material": "^6.3.1", + "@tailwindcss/typography": "^0.5.16", "electron-updater": "^6.3.9", "react-router": "^7.1.1", - "solar-js-sdk": "^0.1.2" + "rehype-sanitize": "^6.0.0", + "rehype-stringify": "^10.0.1", + "remark-gfm": "^4.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.1.1", + "solar-js-sdk": "^0.1.2", + "unified": "^11.0.5" }, "devDependencies": { "@electron-toolkit/eslint-config-prettier": "^2.0.0", diff --git a/src/main/index.ts b/src/main/index.ts index 7922e22..7810e5f 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -8,8 +8,8 @@ function createWindow(): void { const mainWindow = new BrowserWindow({ width: 1280, height: 720, - minWidth: 480, - minHeight: 640, + minWidth: 800, + minHeight: 600, show: false, autoHideMenuBar: true, title: 'MatrixTerminal', diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx index 3102b98..140825e 100644 --- a/src/renderer/src/App.tsx +++ b/src/renderer/src/App.tsx @@ -6,6 +6,8 @@ import Landing from '@renderer/pages/Landing' import { useUserStore } from 'solar-js-sdk' import { useEffect } from 'react' +import ProductDetails from './pages/products/Details' + function App(): JSX.Element { // const ipcHandle = (): void => window.electron.ipcRenderer.send('ping') @@ -40,6 +42,7 @@ function App(): JSX.Element { } /> + } /> diff --git a/src/renderer/src/components/MaAppBar.tsx b/src/renderer/src/components/MaAppBar.tsx index e0707f9..0c8379b 100644 --- a/src/renderer/src/components/MaAppBar.tsx +++ b/src/renderer/src/components/MaAppBar.tsx @@ -34,7 +34,7 @@ export function MaAppBar(): JSX.Element { - + ([]) async function fetchProducts(): Promise { @@ -40,7 +43,7 @@ export default function Landing(): JSX.Element { {products.map((p) => ( - + navigate('/products/' + p.id)}> {p.previews && ( () + const [content, setContent] = useState() + + async function fetchProduct(): Promise { + const { data } = await sni.get('/cgi/ma/products/' + id) + setProduct(data) + } + + async function parseContent(content: string): Promise { + content = content.replace( + /!\[.*?\]\(solink:\/\/attachments\/([\w-]+)\)/g, + '![alt](https://api.sn.solsynth.dev/cgi/uc/attachments/$1)', + ) + + const out = await unified() + .use(remarkParse) + .use(remarkRehype) + .use(remarkGfm) + .use(rehypeSanitize) + .use(rehypeStringify) + .process(content) + + return String(out) + } + + const [releases, setReleases] = useState() + const [selectedRelease, setSelectedRelease] = useState() + const [selectedReleaseContent, setSelectedReleaseContent] = useState() + + const [showInstaller, setShowInstaller] = useState(false) + + async function fetchReleases(): Promise { + const { data: resp } = await sni.get<{ data: MaRelease[] }>('/cgi/ma/products/' + id + '/releases', { + params: { + take: 10, + }, + }) + setReleases(resp.data) + } + + useEffect(() => { + fetchProduct().then(() => Promise.all([fetchReleases()])) + }, []) + + useEffect(() => { + if (product?.meta?.introduction == null) return + parseContent(product.meta.introduction).then((out) => setContent(out)) + }, [product?.meta?.introduction]) + + useEffect(() => { + if (selectedRelease == null) return + parseContent(selectedRelease.meta.content).then((out) => setSelectedReleaseContent(out)) + }, [selectedRelease]) + + return ( + <> + {product?.previews && ( + + )} + + + + + + + + + + {product?.icon && ( + + )} + + {product?.name} + + + {product?.description} + + + + {content && ( + + )} + + + + + + + Install + + + + Releases + + + + + + + + + + + setShowInstaller(false)} maxWidth="sm" fullWidth> + Install v{selectedRelease?.version} + + + {selectedRelease?.meta.title} + + + {selectedRelease?.meta.description} + + + + + + + + + ) +} diff --git a/tailwind.config.js b/tailwind.config.js index ab20e63..694b742 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -4,5 +4,5 @@ module.exports = { theme: { extend: {}, }, - plugins: [], + plugins: [require('@tailwindcss/typography')], }