From e7e23c3af34f734293bc014db78603e24cd82b58 Mon Sep 17 00:00:00 2001 From: neil Date: Sun, 27 Nov 2022 15:08:25 +0800 Subject: [PATCH 1/2] #32 initial dynamic search packages --- .github/workflows/ci.yml | 22 ++ packages/gui/.eslintignore | 1 + packages/gui/.eslintrc.cjs | 46 +-- packages/gui/.prettierignore | 8 + packages/gui/.prettierrc | 1 + packages/gui/README.md | 6 +- packages/gui/package.json | 97 +++--- packages/gui/postcss.config.cjs | 10 +- packages/gui/src-tauri/tauri.conf.json | 219 +++++++------ packages/gui/src/app.css | 18 +- .../gui/src/components/Badges/Badges.svelte | 7 +- .../BigBlackSpace/BigBlackSpace.svelte | 7 +- .../src/components/CliBanner/CliBanner.svelte | 7 +- .../EssentialWorkshops.svelte | 7 +- .../FeaturedCourses/FeaturedCourses.svelte | 7 +- .../FeaturedPackages/FeaturedPackages.svelte | 7 +- .../GettingStarted/GettingStarted.svelte | 7 +- .../InstalledPackages.svelte | 7 +- .../gui/src/components/NavBar/NavBar.svelte | 287 +++++++++--------- .../PackageBanner/PackageBanner.svelte | 7 +- .../PackageReviews/PackageReviews.svelte | 6 +- .../components/PageHeader/PageHeader.svelte | 4 +- .../components/Placeholder/Placeholder.svelte | 34 +-- .../src/components/Preflight/Preflight.svelte | 7 +- .../ProfileBanner/ProfileBanner.svelte | 7 +- .../SearchPackages/SearchPackages.svelte | 60 ++-- packages/gui/src/libs/api.ts | 32 -- packages/gui/src/libs/api/mock.ts | 154 ++++++++++ packages/gui/src/libs/api/tauri.ts | 51 ++++ packages/gui/src/libs/stores.ts | 16 +- packages/gui/src/libs/types.ts | 24 +- packages/gui/src/routes/+layout.svelte | 120 ++++---- packages/gui/src/routes/+layout.ts | 2 +- packages/gui/src/routes/+page.svelte | 29 +- packages/gui/src/routes/cli/+page.svelte | 29 +- .../gui/src/routes/documentation/+page.svelte | 29 +- packages/gui/src/routes/others/+page.svelte | 18 +- packages/gui/src/routes/packages/+page.svelte | 17 +- .../src/routes/packages/[slug]/+page.svelte | 32 +- .../gui/src/routes/packages/[slug]/+page.ts | 14 +- packages/gui/src/routes/profile/+page.svelte | 51 ++-- packages/gui/svelte.config.js | 6 +- packages/gui/tailwind.config.cjs | 13 +- packages/gui/tsconfig.json | 6 +- packages/gui/vite.config.ts | 9 +- packages/ui/.eslintrc.cjs | 51 ++-- packages/ui/.prettierrc | 1 + packages/ui/.storybook/main.cjs | 31 +- packages/ui/.storybook/preview-head.html | 4 +- packages/ui/.storybook/preview.js | 16 +- packages/ui/README.md | 7 +- packages/ui/package.json | 100 +++--- packages/ui/postcss.config.cjs | 10 +- packages/ui/src/Button/Button.stories.ts | 70 ++--- packages/ui/src/Button/Button.svelte | 65 ++-- packages/ui/src/Button/button.css | 38 +-- packages/ui/src/Header/Header.stories.ts | 54 ++-- packages/ui/src/Header/Header.svelte | 86 +++--- packages/ui/src/Header/header.css | 38 +-- packages/ui/src/Page/Page.stories.ts | 34 +-- packages/ui/src/Page/Page.svelte | 115 +++---- packages/ui/src/Page/page.css | 82 ++--- packages/ui/src/app.css | 10 +- packages/ui/svelte.config.js | 2 +- packages/ui/tailwind.config.cjs | 36 +-- packages/ui/tsconfig.json | 18 +- pnpm-lock.yaml | 32 +- 67 files changed, 1357 insertions(+), 1091 deletions(-) delete mode 100644 packages/gui/src/libs/api.ts create mode 100644 packages/gui/src/libs/api/mock.ts create mode 100644 packages/gui/src/libs/api/tauri.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e0641dd..54df9f3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,6 +40,26 @@ jobs: message-id: preview-comment-${{needs.changes.outputs.preview_folder}} message: | no preview or changes related to UI + test: + needs: changes + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + persist-credentials: false + - uses: pnpm/action-setup@v2 + with: + version: 7 + - name: setup node + uses: actions/setup-node@v1 + with: + node-version: 16 + cache: 'pnpm' + cache-dependency-path: pnpm-lock.yaml + - name: install app dependencies + run: pnpm install + - name: lint + run: pnpm -r lint build_svelte: needs: changes if: needs.changes.outputs.svelte == 'true' @@ -62,6 +82,8 @@ jobs: with: toolchain: stable - name: install app dependencies and build it + env: + BUILD_FOR: preview run: pnpm install && pnpm --filter gui build - uses: aws-actions/configure-aws-credentials@v1 with: diff --git a/packages/gui/.eslintignore b/packages/gui/.eslintignore index 3897265..6533725 100644 --- a/packages/gui/.eslintignore +++ b/packages/gui/.eslintignore @@ -11,3 +11,4 @@ node_modules pnpm-lock.yaml package-lock.json yarn.lock +src-tauri/target/* \ No newline at end of file diff --git a/packages/gui/.eslintrc.cjs b/packages/gui/.eslintrc.cjs index b576421..22e9c92 100644 --- a/packages/gui/.eslintrc.cjs +++ b/packages/gui/.eslintrc.cjs @@ -1,23 +1,25 @@ module.exports = { - root: true, - parser: '@typescript-eslint/parser', - extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'], - plugins: ['svelte3', '@typescript-eslint'], - ignorePatterns: ['*.cjs'], - overrides: [{ - files: ['*.svelte'], - processor: 'svelte3/svelte3' - }], - settings: { - 'svelte3/typescript': () => require('typescript') - }, - parserOptions: { - sourceType: 'module', - ecmaVersion: 2020 - }, - env: { - browser: true, - es2017: true, - node: true - } -}; \ No newline at end of file + root: true, + parser: '@typescript-eslint/parser', + extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'], + plugins: ['svelte3', '@typescript-eslint'], + ignorePatterns: ['*.cjs'], + overrides: [ + { + files: ['*.svelte'], + processor: 'svelte3/svelte3' + } + ], + settings: { + 'svelte3/typescript': () => require('typescript') + }, + parserOptions: { + sourceType: 'module', + ecmaVersion: 2020 + }, + env: { + browser: true, + es2017: true, + node: true + } +}; diff --git a/packages/gui/.prettierignore b/packages/gui/.prettierignore index 3897265..424fa1a 100644 --- a/packages/gui/.prettierignore +++ b/packages/gui/.prettierignore @@ -11,3 +11,11 @@ node_modules pnpm-lock.yaml package-lock.json yarn.lock +build +/src-tauri/src/* +/src-tauri/icons/* +/src-tauri/target/**/* +/src-tauri/build/* +/src-tauri/Cargo.lock +/src-tauri/Cargo.toml +src-tauri \ No newline at end of file diff --git a/packages/gui/.prettierrc b/packages/gui/.prettierrc index a77fdde..1176c1f 100644 --- a/packages/gui/.prettierrc +++ b/packages/gui/.prettierrc @@ -1,4 +1,5 @@ { + "tabWidth": 2, "useTabs": true, "singleQuote": true, "trailingComma": "none", diff --git a/packages/gui/README.md b/packages/gui/README.md index fb9879b..cef9988 100644 --- a/packages/gui/README.md +++ b/packages/gui/README.md @@ -1,7 +1,8 @@ # @tea/gui + Desktop app of [tea](https://tea.xyz) for installing packages/softwares -More interesting and possibly updated documentations are at this [NOTION](https://www.notion.so/teaxyz/tea-gui-fdd9f50aa980432fa370b2cf6a03cb50) page. It is ideal to review it also, its more updated. +More interesting and possibly updated documentations are at this [NOTION](https://www.notion.so/teaxyz/tea-gui-fdd9f50aa980432fa370b2cf6a03cb50) page. It is ideal to review it also, its more updated. ## Developing @@ -29,5 +30,4 @@ You can preview the production build with `npm run preview`. ## Intuition Building Links -* [Rust module system is weird?](https://www.sheshbabu.com/posts/rust-module-system/) - +- [Rust module system is weird?](https://www.sheshbabu.com/posts/rust-module-system/) diff --git a/packages/gui/package.json b/packages/gui/package.json index 1420723..c3ab475 100644 --- a/packages/gui/package.json +++ b/packages/gui/package.json @@ -1,50 +1,51 @@ { - "name": "@tea/gui", - "version": "0.0.0", - "private": true, - "scripts": { - "tauri": "tauri", - "dev": "vite dev --port 8080", - "build": "vite build && cp build/app.html build/index.html", - "preview": "vite preview", - "test": "playwright test", - "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "lint": "prettier --plugin-search-dir . --check . && eslint .", - "format": "prettier --plugin-search-dir . --write ." - }, - "devDependencies": { - "@playwright/test": "1.25.0", - "@sveltejs/adapter-auto": "next", - "@sveltejs/adapter-static": "1.0.0-next.48", - "@sveltejs/kit": "next", - "@tauri-apps/cli": "1.2.0", - "@tea/ui": "workspace:*", - "@typescript-eslint/eslint-plugin": "^5.27.0", - "@typescript-eslint/parser": "^5.27.0", - "autoprefixer": "^10.4.13", - "eslint": "^8.16.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-svelte3": "^4.0.0", - "postcss": "^8.4.19", - "prettier": "^2.6.2", - "prettier-plugin-svelte": "^2.7.0", - "svelte": "^3.49.0", - "svelte-check": "^2.8.0", - "svelte-preprocess": "^4.10.7", - "tailwindcss": "^3.2.4", - "tslib": "^2.3.1", - "typescript": "^4.7.4", - "vite": "^3.1.0" - }, - "type": "module", - "dependencies": { - "@tauri-apps/api": "^1.2.0", - "buffer": "^6.0.3" - }, - "pnpm": { - "onlyBuiltDependencies": [ - "@tea/ui" - ] - } + "name": "@tea/gui", + "version": "0.0.0", + "private": true, + "scripts": { + "tauri": "tauri", + "dev": "vite dev --port 8080", + "build": "vite build && cp build/app.html build/index.html", + "preview": "vite preview", + "test": "playwright test", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "lint": "prettier --plugin-search-dir . --check . && eslint .", + "format": "prettier --plugin-search-dir . --write ." + }, + "devDependencies": { + "@playwright/test": "1.25.0", + "@sveltejs/adapter-auto": "next", + "@sveltejs/adapter-static": "1.0.0-next.48", + "@sveltejs/kit": "next", + "@tauri-apps/cli": "1.2.0", + "@tea/ui": "workspace:*", + "@typescript-eslint/eslint-plugin": "^5.27.0", + "@typescript-eslint/parser": "^5.27.0", + "autoprefixer": "^10.4.13", + "eslint": "^8.16.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-svelte3": "^4.0.0", + "postcss": "^8.4.19", + "prettier": "^2.6.2", + "prettier-plugin-svelte": "^2.7.0", + "svelte": "^3.49.0", + "svelte-check": "^2.8.0", + "svelte-preprocess": "^4.10.7", + "svelte2tsx": "^0.5.20", + "tailwindcss": "^3.2.4", + "tslib": "^2.3.1", + "typescript": "^4.7.4", + "vite": "^3.1.0" + }, + "type": "module", + "dependencies": { + "@tauri-apps/api": "^1.2.0", + "buffer": "^6.0.3" + }, + "pnpm": { + "onlyBuiltDependencies": [ + "@tea/ui" + ] + } } diff --git a/packages/gui/postcss.config.cjs b/packages/gui/postcss.config.cjs index 33ad091..054c147 100644 --- a/packages/gui/postcss.config.cjs +++ b/packages/gui/postcss.config.cjs @@ -1,6 +1,6 @@ module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -} + plugins: { + tailwindcss: {}, + autoprefixer: {} + } +}; diff --git a/packages/gui/src-tauri/tauri.conf.json b/packages/gui/src-tauri/tauri.conf.json index 99c4e1a..9da9ca5 100644 --- a/packages/gui/src-tauri/tauri.conf.json +++ b/packages/gui/src-tauri/tauri.conf.json @@ -1,113 +1,110 @@ { - "$schema": "../../../node_modules/@tauri-apps/cli/schema.json", - "build": { - "beforeBuildCommand": "pnpm build", - "beforeDevCommand": "pnpm dev", - "devPath": "http://localhost:8080", - "distDir": "../build" - }, - "package": { - "productName": "gui", - "version": "0.1.0" - }, - "tauri": { - "allowlist": { - "http": { - "all": true, - "request": true, - "scope": [ - "https://api.tea.xyz/v1/*", - "https://github.com/*" - ] - }, - "shell": { - "all": false, - "execute": false, - "open": true, - "scope": [], - "sidecar": false - }, - "window": { - "all": true, - "center": true, - "close": true, - "create": true, - "hide": true, - "maximize": true, - "minimize": true, - "print": true, - "requestUserAttention": true, - "setAlwaysOnTop": true, - "setCursorGrab": true, - "setCursorIcon": true, - "setCursorPosition": true, - "setCursorVisible": true, - "setDecorations": true, - "setFocus": true, - "setFullscreen": true, - "setIcon": true, - "setIgnoreCursorEvents": true, - "setMaxSize": true, - "setMinSize": true, - "setPosition": true, - "setResizable": true, - "setSize": true, - "setSkipTaskbar": true, - "setTitle": true, - "show": true, - "startDragging": true, - "unmaximize": true, - "unminimize": true - } - }, - "bundle": { - "active": true, - "category": "DeveloperTool", - "copyright": "", - "deb": { - "depends": [] - }, - "externalBin": [], - "icon": [ - "icons/32x32.png", - "icons/128x128.png", - "icons/128x128@2x.png", - "icons/icon.icns", - "icons/icon.ico" - ], - "identifier": "com.tea.xyz", - "longDescription": "", - "macOS": { - "entitlements": null, - "exceptionDomain": "", - "frameworks": [], - "providerShortName": null, - "signingIdentity": null - }, - "resources": [], - "shortDescription": "", - "targets": "all", - "windows": { - "certificateThumbprint": null, - "digestAlgorithm": "sha256", - "timestampUrl": "" - } - }, - "security": { - "csp": null - }, - "updater": { - "active": false - }, - "windows": [ - { - "fullscreen": false, - "height": 600, - "resizable": true, - "title": "gui", - "width": 800, - "decorations": false - } - ] - } + "$schema": "../../../node_modules/@tauri-apps/cli/schema.json", + "build": { + "beforeBuildCommand": "pnpm build", + "beforeDevCommand": "pnpm dev", + "devPath": "http://localhost:8080", + "distDir": "../build" + }, + "package": { + "productName": "gui", + "version": "0.1.0" + }, + "tauri": { + "allowlist": { + "http": { + "all": true, + "request": true, + "scope": ["https://api.tea.xyz/v1/*", "https://github.com/*"] + }, + "shell": { + "all": false, + "execute": false, + "open": true, + "scope": [], + "sidecar": false + }, + "window": { + "all": true, + "center": true, + "close": true, + "create": true, + "hide": true, + "maximize": true, + "minimize": true, + "print": true, + "requestUserAttention": true, + "setAlwaysOnTop": true, + "setCursorGrab": true, + "setCursorIcon": true, + "setCursorPosition": true, + "setCursorVisible": true, + "setDecorations": true, + "setFocus": true, + "setFullscreen": true, + "setIcon": true, + "setIgnoreCursorEvents": true, + "setMaxSize": true, + "setMinSize": true, + "setPosition": true, + "setResizable": true, + "setSize": true, + "setSkipTaskbar": true, + "setTitle": true, + "show": true, + "startDragging": true, + "unmaximize": true, + "unminimize": true + } + }, + "bundle": { + "active": true, + "category": "DeveloperTool", + "copyright": "", + "deb": { + "depends": [] + }, + "externalBin": [], + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ], + "identifier": "com.tea.xyz", + "longDescription": "", + "macOS": { + "entitlements": null, + "exceptionDomain": "", + "frameworks": [], + "providerShortName": null, + "signingIdentity": null + }, + "resources": [], + "shortDescription": "", + "targets": "all", + "windows": { + "certificateThumbprint": null, + "digestAlgorithm": "sha256", + "timestampUrl": "" + } + }, + "security": { + "csp": null + }, + "updater": { + "active": false + }, + "windows": [ + { + "fullscreen": false, + "height": 600, + "resizable": true, + "title": "gui", + "width": 800, + "decorations": false + } + ] + } } diff --git a/packages/gui/src/app.css b/packages/gui/src/app.css index 37a65e5..c5791be 100644 --- a/packages/gui/src/app.css +++ b/packages/gui/src/app.css @@ -3,22 +3,22 @@ @tailwind utilities; @font-face { - font-family: "pp-neue-machina"; - src: url("/fonts/PPNeueMachina-InktrapLight.woff"); + font-family: 'pp-neue-machina'; + src: url('/fonts/PPNeueMachina-InktrapLight.woff'); } @font-face { - font-family: "sono"; - src: url("/fonts/Sono-Light.woff2"); + font-family: 'sono'; + src: url('/fonts/Sono-Light.woff2'); } html { - background-color: #1a1a1a; - color: #fff; + background-color: #1a1a1a; + color: #fff; } @layer base { - html { - font-family: sono, sans-serif; - } + html { + font-family: sono, sans-serif; + } } diff --git a/packages/gui/src/components/Badges/Badges.svelte b/packages/gui/src/components/Badges/Badges.svelte index bf86e1d..d17db57 100644 --- a/packages/gui/src/components/Badges/Badges.svelte +++ b/packages/gui/src/components/Badges/Badges.svelte @@ -1,5 +1,6 @@ - \ No newline at end of file + + diff --git a/packages/gui/src/components/BigBlackSpace/BigBlackSpace.svelte b/packages/gui/src/components/BigBlackSpace/BigBlackSpace.svelte index c5ed78a..c6701a4 100644 --- a/packages/gui/src/components/BigBlackSpace/BigBlackSpace.svelte +++ b/packages/gui/src/components/BigBlackSpace/BigBlackSpace.svelte @@ -1,5 +1,6 @@ - \ No newline at end of file + + diff --git a/packages/gui/src/components/CliBanner/CliBanner.svelte b/packages/gui/src/components/CliBanner/CliBanner.svelte index 11728c1..0415675 100644 --- a/packages/gui/src/components/CliBanner/CliBanner.svelte +++ b/packages/gui/src/components/CliBanner/CliBanner.svelte @@ -1,5 +1,6 @@ - \ No newline at end of file + + diff --git a/packages/gui/src/components/EssentialWorkshops/EssentialWorkshops.svelte b/packages/gui/src/components/EssentialWorkshops/EssentialWorkshops.svelte index f274cd2..b6749de 100644 --- a/packages/gui/src/components/EssentialWorkshops/EssentialWorkshops.svelte +++ b/packages/gui/src/components/EssentialWorkshops/EssentialWorkshops.svelte @@ -1,5 +1,6 @@ - \ No newline at end of file + + diff --git a/packages/gui/src/components/FeaturedCourses/FeaturedCourses.svelte b/packages/gui/src/components/FeaturedCourses/FeaturedCourses.svelte index 86631f5..35bfb88 100644 --- a/packages/gui/src/components/FeaturedCourses/FeaturedCourses.svelte +++ b/packages/gui/src/components/FeaturedCourses/FeaturedCourses.svelte @@ -1,5 +1,6 @@ - \ No newline at end of file + + diff --git a/packages/gui/src/components/FeaturedPackages/FeaturedPackages.svelte b/packages/gui/src/components/FeaturedPackages/FeaturedPackages.svelte index 99371ec..182910c 100644 --- a/packages/gui/src/components/FeaturedPackages/FeaturedPackages.svelte +++ b/packages/gui/src/components/FeaturedPackages/FeaturedPackages.svelte @@ -1,5 +1,6 @@ - \ No newline at end of file + + diff --git a/packages/gui/src/components/GettingStarted/GettingStarted.svelte b/packages/gui/src/components/GettingStarted/GettingStarted.svelte index 2d5006f..4c7f655 100644 --- a/packages/gui/src/components/GettingStarted/GettingStarted.svelte +++ b/packages/gui/src/components/GettingStarted/GettingStarted.svelte @@ -1,5 +1,6 @@ - \ No newline at end of file + + diff --git a/packages/gui/src/components/InstalledPackages/InstalledPackages.svelte b/packages/gui/src/components/InstalledPackages/InstalledPackages.svelte index 8fe4409..c9a3c9f 100644 --- a/packages/gui/src/components/InstalledPackages/InstalledPackages.svelte +++ b/packages/gui/src/components/InstalledPackages/InstalledPackages.svelte @@ -1,5 +1,6 @@ - \ No newline at end of file + + diff --git a/packages/gui/src/components/NavBar/NavBar.svelte b/packages/gui/src/components/NavBar/NavBar.svelte index d521432..1efec05 100644 --- a/packages/gui/src/components/NavBar/NavBar.svelte +++ b/packages/gui/src/components/NavBar/NavBar.svelte @@ -1,164 +1,161 @@ -