Docs: update link for questionnaire (#4026) (#4013)

Signed-off-by: Carson Yang <yangchuansheng33@gmail.com>
Co-authored-by: Carson Yang <yangchuansheng33@gmail.com>
This commit is contained in:
xudaotutou
2023-10-07 11:22:09 +08:00
committed by GitHub
parent 3c8c639548
commit 1fc97cb3bd
48 changed files with 8883 additions and 41978 deletions
+13 -3
View File
@@ -44,7 +44,7 @@ jobs:
matrix:
module:
[
providers/license,
providers/license,
providers/cronjob,
providers/template,
providers/adminer,
@@ -105,7 +105,15 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GH_PAT }}
- name: Cache pnpm-store
uses: actions/cache@v3
with:
path: pnpm-store
key: pnpm-store-${{ hashFiles('Dockerfile') }}
- name: inject pnpm-store into docker
uses: reproducible-containers/buildkit-cache-dance@v2.1.2
with:
cache-source: pnpm-store
- name: Build And Push
uses: docker/build-push-action@v4
with:
@@ -119,6 +127,8 @@ jobs:
push: ${{ (github.event_name == 'push') ||(github.event_name == 'create') || (inputs.push_image == true) }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
save-sealos:
uses: ./.github/workflows/import-save-sealos.yml
cluster-image-build:
@@ -131,7 +141,7 @@ jobs:
matrix:
module:
[
providers/license,
providers/license,
providers/cronjob,
providers/template,
providers/adminer,
+1
View File
@@ -0,0 +1 @@
git-branch-lockfiles=true
+14 -21
View File
@@ -11,8 +11,11 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
FROM node:current-alpine As base
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
FROM node:current-alpine AS runner
FROM base AS runner
WORKDIR /app
ENV NODE_ENV production
@@ -21,13 +24,6 @@ ENV NEXT_TELEMETRY_DISABLED 1
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
ARG mirror
RUN if [ "$mirror" = "tsinghua"]; then \
echo "MIRROR: $mirror"; \
sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories; \
else \
sed -i 's/https/http/' /etc/apk/repositories; \
fi
RUN apk add curl \
&& apk add ca-certificates \
@@ -46,7 +42,7 @@ EXPOSE 3000
ENV PORT 3000
# Install dependencies only when needed
FROM node:current-alpine AS deps
FROM base AS deps
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
RUN apk add --no-cache libc6-compat && npm install -g pnpm
@@ -55,7 +51,7 @@ WORKDIR /app
# Install dependencies based on the preferred package manager root workspace
COPY pnpm-lock.yaml package.json pnpm-workspace.yaml ./
RUN \
RUN --mount=type=cache,id=pnpm,target=/pnpm/store \
[ -f pnpm-lock.yaml ] && pnpm fetch || \
(echo "Lockfile not found." && exit 1)
COPY ./tsconfig.json ./tsconfig.json
@@ -63,37 +59,34 @@ COPY ./tsconfig.deps.json ./tsconfig.deps.json
COPY ./tsconfig.base.json ./tsconfig.base.json
COPY ./packages ./packages
RUN pnpm -r --offline --filter=./packages/* install \
RUN --mount=type=cache,id=pnpm,target=/pnpm/store \
pnpm -r --offline --filter=./packages/* install \
&& pnpm -r --filter=./packages/* run build
# Rebuild the source code only when needed
FROM node:current-alpine AS builder
FROM deps AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
# COPY --from=deps /app/packages ./packages
# COPY --from=deps /app/node_modules ./node_modules
# Next.js collects completely anonymous telemetry data about general usage.
# Learn more here: https://nextjs.org/telemetry
# Uncomment the following line in case you want to disable telemetry during the build.
ENV NEXT_TELEMETRY_DISABLED 1
RUN npm install -g pnpm
# RUN npm install -g pnpm
COPY --from=deps /app/packages ./packages
# COPY --from=deps /app/packages ./packages
COPY . .
# RUN pnpm -r --offline --filter=./packages/* install \
# && pnpm -r --filter=./packages/* run build
ARG name
ARG path
RUN pnpm --offline --filter=$name install && pnpm --filter=$name run build
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm --offline --filter=$name install && pnpm --filter=$name run build
# Production image, copy all the files and run next
FROM runner
FROM runner As runner
ARG name
ARG path
+2 -3
View File
@@ -1,6 +1,5 @@
DOCKER_USERNAME := $(DOCKER_USERNAME)
IMAGE_TAG := $(IMAGE_TAG)
MIRROR := $(MIRROR)
ifneq ($(strip $(DOCKER_USERNAME)),)
imageOwner := $(DOCKER_USERNAME)/
@@ -61,9 +60,9 @@ image-prebuild: pnpm-lock.yaml
docker build --platform=linux/amd64 --target deps . -t $(imageOwner)sealos-deps:dev
image-build-providers/%: image-prebuild
docker build --platform=linux/amd64 -t $(imageOwner)sealos-$*:$(imageTag) --build-arg path=providers/$* --build-arg name=$* --build-arg mirror=$(MIRROR) .
docker build --platform=linux/amd64 -t $(imageOwner)sealos-$*:$(imageTag) --build-arg path=providers/$* --build-arg name=$* .
image-build-%: image-prebuild
docker build --platform=linux/amd64 -t $(imageOwner)sealos-$*:$(imageTag) --build-arg path=$* --build-arg name=$* --build-arg mirror=$(MIRROR) .
docker build --platform=linux/amd64 -t $(imageOwner)sealos-$*:$(imageTag) --build-arg path=$* --build-arg name=$* .
image-push-providers/%: image-build-providers/%
docker push $(imageOwner)sealos-$*:$(imageTag)
+22 -22
View File
@@ -14,25 +14,25 @@
"@alicloud/dysmsapi20170525": "^2.0.24",
"@alicloud/openapi-client": "^0.4.6",
"@alicloud/tea-util": "^1.4.7",
"@chakra-ui/react": "^2.8.0",
"@chakra-ui/react": "^2.8.1",
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@kubernetes/client-node": "^0.18.1",
"@tanstack/react-query": "^4.29.25",
"axios": "^1.4.0",
"@tanstack/react-query": "^4.35.3",
"axios": "^1.5.1",
"clsx": "^1.2.1",
"cors": "^2.8.5",
"dayjs": "^1.11.9",
"dayjs": "^1.11.10",
"eslint": "8.38.0",
"eslint-config-next": "13.3.0",
"framer-motion": "^10.12.22",
"framer-motion": "^10.16.4",
"i18next": "^22.5.1",
"immer": "^10.0.2",
"js-cookie": "^3.0.5",
"js-yaml": "^4.1.0",
"jsonwebtoken": "^9.0.1",
"jsonwebtoken": "^9.0.2",
"lodash": "^4.17.21",
"mongodb": "^5.7.0",
"mongodb": "^5.9.0",
"nanoid": "^4.0.2",
"next": "13.3.0",
"next-i18next": "^13.3.0",
@@ -41,29 +41,29 @@
"qrcode.react": "^3.1.0",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-draggable": "^4.4.5",
"react-hook-form": "^7.45.2",
"react-draggable": "^4.4.6",
"react-hook-form": "^7.46.2",
"react-i18next": "^12.3.1",
"sass": "^1.63.6",
"sass": "^1.68.0",
"sealos-desktop-sdk": "workspace:*",
"uuid": "^9.0.0",
"zustand": "^4.3.9"
"uuid": "^9.0.1",
"zustand": "^4.4.1"
},
"devDependencies": {
"@testing-library/jest-dom": "^6.1.2",
"@testing-library/jest-dom": "^6.1.3",
"@testing-library/react": "^14.0.0",
"@types/jest": "^29.5.4",
"@types/js-cookie": "^3.0.3",
"@types/js-yaml": "^4.0.5",
"@types/jsonwebtoken": "^9.0.2",
"@types/lodash": "^4.14.195",
"@types/jest": "^29.5.5",
"@types/js-cookie": "^3.0.4",
"@types/js-yaml": "^4.0.6",
"@types/jsonwebtoken": "^9.0.3",
"@types/lodash": "^4.14.199",
"@types/node": "18.15.11",
"@types/nprogress": "^0.2.0",
"@types/nprogress": "^0.2.1",
"@types/react": "18.0.37",
"@types/react-dom": "18.0.11",
"@types/uuid": "^9.0.2",
"jest": "^29.6.4",
"jest-environment-jsdom": "^29.6.4",
"@types/uuid": "^9.0.4",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"prettier": "^2.8.8"
}
}
+1 -1
View File
@@ -24,6 +24,6 @@
"react-i18next": "^12.3.1"
},
"dependencies": {
"typescript": "^5.1.6"
"typescript": "^5.2.2"
}
}
+10 -10
View File
@@ -49,22 +49,22 @@
"author": "lizhenq2009@gmail.com",
"license": "ISC",
"devDependencies": {
"@rollup/plugin-typescript": "^11.1.2",
"@types/js-cookie": "^3.0.3",
"@types/js-yaml": "^4.0.5",
"@types/node": "^20.5.7",
"@types/uuid": "^9.0.2",
"@rollup/plugin-typescript": "^11.1.4",
"@types/js-cookie": "^3.0.4",
"@types/js-yaml": "^4.0.6",
"@types/node": "^20.7.1",
"@types/uuid": "^9.0.4",
"rollup": "2.79.1",
"rollup-plugin-copy": "^3.4.0",
"rollup-plugin-copy": "^3.5.0",
"rollup-plugin-dts": "^4.2.3",
"tslib": "^2.6.0"
"tslib": "^2.6.2"
},
"dependencies": {
"@kubernetes/client-node": "^0.18.1",
"axios": "^1.4.0",
"dayjs": "^1.11.9",
"axios": "^1.5.1",
"dayjs": "^1.11.10",
"js-cookie": "^3.0.5",
"js-yaml": "^4.1.0",
"uuid": "^9.0.0"
"uuid": "^9.0.1"
}
}
+8540 -12224
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -10,7 +10,7 @@
},
"dependencies": {
"@kubernetes/client-node": "0.18.1",
"@tanstack/react-query": "^4.29.25",
"@tanstack/react-query": "^4.35.3",
"axios": "1.4.0",
"clsx": "^1.2.1",
"immer": "^10.0.2",
@@ -18,14 +18,14 @@
"next": "13.4.5",
"react": "18.2.0",
"sealos-desktop-sdk": "workspace:*",
"zustand": "^4.3.9"
"zustand": "^4.4.1"
},
"devDependencies": {
"@types/js-yaml": "^4.0.5",
"@types/js-yaml": "^4.0.6",
"@types/node": "20.3.1",
"@types/react": "18.2.12",
"eslint": "8.42.0",
"eslint-config-next": "13.4.5",
"sass": "^1.63.6"
"sass": "^1.68.0"
}
}
File diff suppressed because it is too large Load Diff
+14 -14
View File
@@ -11,17 +11,17 @@
"unlink-sdk": "yalc remove --all && pnpm install sealos-desktop-sdk"
},
"dependencies": {
"@chakra-ui/icons": "^2.1.0",
"@chakra-ui/react": "^2.8.0",
"@chakra-ui/system": "^2.6.0",
"@chakra-ui/icons": "^2.1.1",
"@chakra-ui/react": "^2.8.1",
"@chakra-ui/system": "^2.6.1",
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@kubernetes/client-node": "^0.18.1",
"@next/font": "13.1.6",
"@tanstack/react-query": "^4.29.25",
"@tanstack/react-query": "^4.35.3",
"ansi_up": "^5.2.1",
"axios": "^1.4.0",
"dayjs": "^1.11.9",
"axios": "^1.5.1",
"dayjs": "^1.11.10",
"dns": "^0.2.2",
"echarts": "^5.4.3",
"fast-json-patch": "^3.1.1",
@@ -39,27 +39,27 @@
"prettier": "^2.8.8",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-hook-form": "^7.45.2",
"react-hook-form": "^7.46.2",
"react-i18next": "^12.3.1",
"react-markdown": "^8.0.7",
"react-syntax-highlighter": "^15.5.0",
"sass": "^1.63.6",
"sass": "^1.68.0",
"sealos-desktop-sdk": "workspace:*",
"zustand": "^4.3.9"
"zustand": "^4.4.1"
},
"devDependencies": {
"@svgr/webpack": "^6.5.1",
"@types/js-cookie": "^3.0.3",
"@types/js-yaml": "^4.0.5",
"@types/lodash": "^4.14.195",
"@types/js-cookie": "^3.0.4",
"@types/js-yaml": "^4.0.6",
"@types/lodash": "^4.14.199",
"@types/node": "18.13.0",
"@types/nprogress": "^0.2.0",
"@types/nprogress": "^0.2.1",
"@types/react": "18.0.27",
"@types/react-dom": "18.0.10",
"@types/react-syntax-highlighter": "^15.5.7",
"eslint": "8.33.0",
"eslint-config-next": "13.1.6",
"svg-inline-loader": "^0.8.2",
"webpack-bundle-analyzer": "^4.9.0"
"webpack-bundle-analyzer": "^4.9.1"
}
}
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -10,7 +10,7 @@
},
"dependencies": {
"@kubernetes/client-node": "0.18.0",
"@tanstack/react-query": "^4.29.25",
"@tanstack/react-query": "^4.35.3",
"axios": "1.2.1",
"clsx": "^1.2.1",
"eslint": "8.36.0",
@@ -21,13 +21,13 @@
"react": "18.2.0",
"react-dom": "18.2.0",
"sealos-desktop-sdk": "workspace:*",
"zustand": "^4.3.9"
"zustand": "^4.4.1"
},
"devDependencies": {
"@types/js-yaml": "^4.0.5",
"@types/js-yaml": "^4.0.6",
"@types/node": "18.15.5",
"@types/react": "18.0.28",
"@types/react-dom": "18.0.11",
"sass": "^1.63.6"
"sass": "^1.68.0"
}
}
File diff suppressed because it is too large Load Diff
+18 -18
View File
@@ -12,50 +12,50 @@
"@alicloud/dysmsapi20170525": "^2.0.24",
"@alicloud/openapi-client": "^0.4.6",
"@alicloud/tea-util": "^1.4.7",
"@chakra-ui/anatomy": "^2.1.1",
"@chakra-ui/react": "^2.6.1",
"@emotion/react": "^11.10.6",
"@emotion/styled": "^11.10.6",
"@chakra-ui/anatomy": "^2.2.1",
"@chakra-ui/react": "^2.8.1",
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@kubernetes/client-node": "0.18.0",
"@stripe/stripe-js": "^1.54.2",
"@tanstack/query-sync-storage-persister": "^4.29.25",
"@tanstack/react-query": "^4.29.25",
"@tanstack/react-query-persist-client": "^4.29.25",
"@tanstack/query-sync-storage-persister": "^4.35.3",
"@tanstack/react-query": "^4.35.3",
"@tanstack/react-query-persist-client": "^4.35.5",
"axios": "1.2.1",
"clsx": "^1.2.1",
"date-fns": "^2.30.0",
"echarts": "^5.4.3",
"echarts-for-react": "^3.0.2",
"formik": "^2.4.2",
"framer-motion": "^10.9.1",
"i18next": "^22.4.15",
"immer": "^9.0.16",
"formik": "^2.4.5",
"framer-motion": "^10.16.4",
"i18next": "^22.5.1",
"immer": "^9.0.21",
"js-cookie": "^3.0.5",
"js-yaml": "^4.1.0",
"lodash": "^4.17.21",
"mongodb": "^5.7.0",
"mongodb": "^5.9.0",
"next": "13.1.6",
"next-i18next": "^13.3.0",
"nprogress": "^0.2.0",
"qrcode.react": "^3.1.0",
"react": "18.2.0",
"react-activation": "^0.12.4",
"react-day-picker": "^8.8.0",
"react-day-picker": "^8.8.2",
"react-dom": "18.2.0",
"react-i18next": "^12.3.1",
"sealos-desktop-sdk": "workspace:*",
"zustand": "^4.3.9"
"zustand": "^4.4.1"
},
"devDependencies": {
"@types/js-cookie": "^3.0.3",
"@types/js-yaml": "^4.0.5",
"@types/js-cookie": "^3.0.4",
"@types/js-yaml": "^4.0.6",
"@types/node": "18.15.5",
"@types/nprogress": "^0.2.0",
"@types/nprogress": "^0.2.1",
"@types/react": "18.0.28",
"@types/react-dom": "18.0.11",
"eslint": "8.36.0",
"eslint-config-next": "13.2.4",
"prettier": "^2.8.8",
"sass": "^1.63.6"
"sass": "^1.68.0"
}
}
File diff suppressed because it is too large Load Diff
+16 -16
View File
@@ -11,21 +11,21 @@
"unlink-sdk": "yalc remove --all && pnpm install sealos-desktop-sdk"
},
"dependencies": {
"@chakra-ui/anatomy": "^2.2.0",
"@chakra-ui/icons": "^2.1.0",
"@chakra-ui/react": "^2.8.0",
"@chakra-ui/system": "^2.6.0",
"@chakra-ui/anatomy": "^2.2.1",
"@chakra-ui/icons": "^2.1.1",
"@chakra-ui/react": "^2.8.1",
"@chakra-ui/system": "^2.6.1",
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@kubernetes/client-node": "^0.18.1",
"@next/font": "13.1.6",
"@tanstack/react-query": "^4.29.25",
"@tanstack/react-query": "^4.35.3",
"ansi_up": "^5.2.1",
"axios": "^1.4.0",
"axios": "^1.5.1",
"cron-parser": "^4.9.0",
"cronstrue": "^2.32.0",
"date-fns": "^2.30.0",
"dayjs": "^1.11.9",
"dayjs": "^1.11.10",
"echarts": "^5.4.3",
"framer-motion": "^9.1.7",
"i18next": "^22.5.1",
@@ -40,29 +40,29 @@
"nprogress": "^0.2.0",
"prettier": "^2.8.8",
"react": "18.2.0",
"react-day-picker": "^8.8.0",
"react-day-picker": "^8.8.2",
"react-dom": "18.2.0",
"react-hook-form": "^7.45.2",
"react-hook-form": "^7.46.2",
"react-i18next": "^12.3.1",
"react-markdown": "^8.0.7",
"react-syntax-highlighter": "^15.5.0",
"sass": "^1.63.6",
"sass": "^1.68.0",
"sealos-desktop-sdk": "workspace:*",
"zustand": "^4.3.9"
"zustand": "^4.4.1"
},
"devDependencies": {
"@svgr/webpack": "^6.5.1",
"@types/js-cookie": "^3.0.3",
"@types/js-yaml": "^4.0.5",
"@types/lodash": "^4.14.195",
"@types/js-cookie": "^3.0.4",
"@types/js-yaml": "^4.0.6",
"@types/lodash": "^4.14.199",
"@types/node": "18.13.0",
"@types/nprogress": "^0.2.0",
"@types/nprogress": "^0.2.1",
"@types/react": "18.0.27",
"@types/react-dom": "18.0.10",
"@types/react-syntax-highlighter": "^15.5.7",
"eslint": "8.33.0",
"eslint-config-next": "13.1.6",
"svg-inline-loader": "^0.8.2",
"webpack-bundle-analyzer": "^4.9.0"
"webpack-bundle-analyzer": "^4.9.1"
}
}
@@ -10,7 +10,7 @@ import { UseFormReturn } from 'react-hook-form';
import Label from './Label';
export default function Cron({ formHook }: { formHook: UseFormReturn<CronJobEditType, any> }) {
if (!formHook) return;
if (!formHook) return <></>;
const router = useRouter();
const { t } = useTranslation();
const { setValue, register, getValues } = formHook;
+16 -16
View File
@@ -11,19 +11,19 @@
"unlink-sdk": "yalc remove --all && pnpm install sealos-desktop-sdk"
},
"dependencies": {
"@chakra-ui/anatomy": "^2.2.0",
"@chakra-ui/icons": "^2.1.0",
"@chakra-ui/react": "^2.8.0",
"@chakra-ui/system": "^2.6.0",
"@chakra-ui/anatomy": "^2.2.1",
"@chakra-ui/icons": "^2.1.1",
"@chakra-ui/react": "^2.8.1",
"@chakra-ui/system": "^2.6.1",
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@kubernetes/client-node": "^0.18.1",
"@next/font": "13.1.6",
"@tanstack/react-query": "^4.29.25",
"@tanstack/react-query": "^4.35.3",
"ansi_up": "^5.2.1",
"axios": "^1.4.0",
"axios": "^1.5.1",
"date-fns": "^2.30.0",
"dayjs": "^1.11.9",
"dayjs": "^1.11.10",
"echarts": "^5.4.3",
"framer-motion": "^9.1.7",
"i18next": "^22.5.1",
@@ -38,29 +38,29 @@
"nprogress": "^0.2.0",
"prettier": "^2.8.8",
"react": "18.2.0",
"react-day-picker": "^8.8.0",
"react-day-picker": "^8.8.2",
"react-dom": "18.2.0",
"react-hook-form": "^7.45.2",
"react-hook-form": "^7.46.2",
"react-i18next": "^12.3.1",
"react-markdown": "^8.0.7",
"react-syntax-highlighter": "^15.5.0",
"sass": "^1.63.6",
"sass": "^1.68.0",
"sealos-desktop-sdk": "workspace:*",
"zustand": "^4.3.9"
"zustand": "^4.4.1"
},
"devDependencies": {
"@svgr/webpack": "^6.5.1",
"@types/js-cookie": "^3.0.3",
"@types/js-yaml": "^4.0.5",
"@types/lodash": "^4.14.195",
"@types/js-cookie": "^3.0.4",
"@types/js-yaml": "^4.0.6",
"@types/lodash": "^4.14.199",
"@types/node": "18.13.0",
"@types/nprogress": "^0.2.0",
"@types/nprogress": "^0.2.1",
"@types/react": "18.0.27",
"@types/react-dom": "18.0.10",
"@types/react-syntax-highlighter": "^15.5.7",
"eslint": "8.33.0",
"eslint-config-next": "13.1.6",
"svg-inline-loader": "^0.8.2",
"webpack-bundle-analyzer": "^4.9.0"
"webpack-bundle-analyzer": "^4.9.1"
}
}
+7 -7
View File
@@ -12,7 +12,7 @@
"@ctrl/golang-template": "^1.4.1",
"@kubernetes/client-node": "0.18.0",
"@next/font": "13.1.1",
"@tanstack/react-query": "^4.29.25",
"@tanstack/react-query": "^4.35.3",
"axios": "1.2.1",
"clsx": "^1.2.1",
"eslint": "8.33.0",
@@ -28,18 +28,18 @@
"react-syntax-highlighter": "^15.5.0",
"sealos-desktop-sdk": "workspace:^",
"ts-md5": "^1.3.1",
"zustand": "^4.3.9"
"zustand": "^4.4.1"
},
"devDependencies": {
"@types/js-yaml": "^4.0.5",
"@types/lodash": "^4.14.195",
"@types/js-yaml": "^4.0.6",
"@types/lodash": "^4.14.199",
"@types/node": "18.11.19",
"@types/react": "18.0.27",
"@types/react-dom": "18.0.10",
"@types/react-syntax-highlighter": "^15.5.7",
"autoprefixer": "^10.4.14",
"postcss": "^8.4.26",
"sass": "^1.63.6",
"autoprefixer": "^10.4.16",
"postcss": "^8.4.30",
"sass": "^1.68.0",
"tailwindcss": "^3.3.3"
}
}
File diff suppressed because it is too large Load Diff
+17 -17
View File
@@ -11,19 +11,19 @@
"unlink-sdk": "yalc remove --all && pnpm install sealos-desktop-sdk"
},
"dependencies": {
"@chakra-ui/anatomy": "^2.2.0",
"@chakra-ui/icons": "^2.1.0",
"@chakra-ui/react": "^2.8.0",
"@chakra-ui/system": "^2.6.0",
"@chakra-ui/anatomy": "^2.2.1",
"@chakra-ui/icons": "^2.1.1",
"@chakra-ui/react": "^2.8.1",
"@chakra-ui/system": "^2.6.1",
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@kubernetes/client-node": "^0.18.1",
"@next/font": "13.1.6",
"@tanstack/react-query": "^4.29.25",
"@tanstack/react-query": "^4.35.3",
"ansi_up": "^5.2.1",
"axios": "^1.4.0",
"axios": "^1.5.1",
"date-fns": "^2.30.0",
"dayjs": "^1.11.9",
"dayjs": "^1.11.10",
"echarts": "^5.4.3",
"framer-motion": "^9.1.7",
"i18next": "^22.5.1",
@@ -32,36 +32,36 @@
"js-yaml": "^4.1.0",
"jszip": "^3.10.1",
"lodash": "^4.17.21",
"mongodb": "^5.9.0",
"nanoid": "^4.0.2",
"next": "13.1.6",
"next-i18next": "^13.3.0",
"nprogress": "^0.2.0",
"prettier": "^2.8.8",
"react": "18.2.0",
"react-day-picker": "^8.8.0",
"react-day-picker": "^8.8.2",
"react-dom": "18.2.0",
"react-hook-form": "^7.45.2",
"react-hook-form": "^7.46.2",
"react-i18next": "^12.3.1",
"react-markdown": "^8.0.7",
"react-syntax-highlighter": "^15.5.0",
"sass": "^1.63.6",
"sass": "^1.68.0",
"sealos-desktop-sdk": "workspace:*",
"zustand": "^4.3.9",
"mongodb": "^5.7.0"
"zustand": "^4.4.1"
},
"devDependencies": {
"@svgr/webpack": "^6.5.1",
"@types/js-cookie": "^3.0.3",
"@types/js-yaml": "^4.0.5",
"@types/lodash": "^4.14.195",
"@types/js-cookie": "^3.0.4",
"@types/js-yaml": "^4.0.6",
"@types/lodash": "^4.14.199",
"@types/node": "18.13.0",
"@types/nprogress": "^0.2.0",
"@types/nprogress": "^0.2.1",
"@types/react": "18.0.27",
"@types/react-dom": "18.0.10",
"@types/react-syntax-highlighter": "^15.5.7",
"eslint": "8.33.0",
"eslint-config-next": "13.1.6",
"svg-inline-loader": "^0.8.2",
"webpack-bundle-analyzer": "^4.9.0"
"webpack-bundle-analyzer": "^4.9.1"
}
}
+9 -9
View File
@@ -1,8 +1,8 @@
/** @type {import('next').NextConfig} */
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
const { i18n } = require('./next-i18next.config')
const analyzer = process.env === 'production' ? [new BundleAnalyzerPlugin()] : []
const path = require('path')
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
const { i18n } = require('./next-i18next.config');
const analyzer = process.env === 'production' ? [new BundleAnalyzerPlugin()] : [];
const path = require('path');
const nextConfig = {
i18n,
output: 'standalone',
@@ -15,14 +15,14 @@ const nextConfig = {
issuer: /\.[jt]sx?$/,
use: ['@svgr/webpack']
}
])
config.plugins = [...config.plugins, ...analyzer]
return config
]);
config.plugins = [...config.plugins, ...analyzer];
return config;
},
experimental: {
// this includes files from the monorepo base two directories up
outputFileTracingRoot: path.join(__dirname, '../../')
}
}
};
module.exports = nextConfig
module.exports = nextConfig;
+27 -27
View File
@@ -8,65 +8,65 @@
"start": "next start"
},
"dependencies": {
"@chakra-ui/icons": "^2.0.17",
"@chakra-ui/react": "^2.5.1",
"@chakra-ui/system": "^2.5.5",
"@codemirror/language": "^6.8.0",
"@chakra-ui/icons": "^2.1.1",
"@chakra-ui/react": "^2.8.1",
"@chakra-ui/system": "^2.6.1",
"@codemirror/language": "^6.9.1",
"@codemirror/legacy-modes": "^6.3.3",
"@emotion/react": "^11.10.6",
"@emotion/styled": "^11.10.6",
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@kubernetes/client-node": "^0.18.1",
"@next/font": "13.1.6",
"@tanstack/react-query": "^4.24.10",
"@tanstack/react-query": "^4.35.3",
"@uiw/react-codemirror": "4.21.17",
"axios": "^1.3.4",
"cron-parser": "^4.9.0",
"cronstrue": "^2.32.0",
"dayjs": "^1.11.7",
"axios": "^1.5.1",
"dayjs": "^1.11.10",
"echarts": "^5.4.3",
"fast-json-patch": "^3.1.1",
"framer-motion": "^9.0.4",
"framer-motion": "^9.1.7",
"github-markdown-css": "^5.2.0",
"i18next": "^22.5.0",
"immer": "^9.0.19",
"i18next": "^22.5.1",
"immer": "^9.0.21",
"js-cookie": "^3.0.5",
"js-yaml": "^4.1.0",
"jszip": "^3.10.1",
"lodash": "^4.17.21",
"nanoid": "^4.0.1",
"nanoid": "^4.0.2",
"next": "13.1.6",
"next-i18next": "^13.2.2",
"next-i18next": "^13.3.0",
"nprogress": "^0.2.0",
"octokit": "^3.0.0",
"octokit": "^3.1.1",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-hook-form": "^7.45.1",
"react-hook-form": "^7.46.2",
"react-i18next": "^12.3.1",
"react-markdown": "^8.0.4",
"react-markdown": "^8.0.7",
"react-syntax-highlighter": "^15.5.0",
"rehype-raw": "^6.1.1",
"rehype-rewrite": "^3.0.6",
"remark-gfm": "^3.0.1",
"remark-unwrap-images": "^3.0.1",
"sass": "^1.58.3",
"sealos-desktop-sdk": "^0.1.14",
"sass": "^1.68.0",
"sealos-desktop-sdk": "workspace:^",
"typescript": "4.9.5",
"zustand": "^4.3.5"
"zustand": "^4.4.1"
},
"devDependencies": {
"@svgr/webpack": "^6.5.1",
"@types/js-cookie": "^3.0.3",
"@types/js-yaml": "^4.0.5",
"@types/lodash": "^4.14.191",
"@types/js-cookie": "^3.0.4",
"@types/js-yaml": "^4.0.6",
"@types/lodash": "^4.14.199",
"@types/node": "18.13.0",
"@types/nprogress": "^0.2.0",
"@types/nprogress": "^0.2.1",
"@types/react": "18.0.27",
"@types/react-dom": "18.0.10",
"@types/react-syntax-highlighter": "^15.5.6",
"@types/react-syntax-highlighter": "^15.5.7",
"eslint": "8.33.0",
"eslint-config-next": "13.1.6",
"prettier": "^2.8.4",
"prettier": "^2.8.8",
"svg-inline-loader": "^0.8.2",
"webpack-bundle-analyzer": "^4.8.0"
"webpack-bundle-analyzer": "^4.9.1"
}
}
@@ -22,7 +22,8 @@ export default function StatusTag({
fontSize={'xs'}
fontWeight={'bold'}
alignItems={'center'}
w={'88px'}>
w={'88px'}
>
<Box w={'10px'} h={'10px'} borderRadius={'10px'} backgroundColor={status.dotColor}></Box>
<Box ml={2} flex={1}>
{t(status.label)}
@@ -32,7 +32,8 @@ const Table = ({ columns, data, itemClass = '' }: Props) => {
}}
_last={{
borderRightRadius: 'md'
}}>
}}
>
{t(item.title)}
</Box>
))}
@@ -56,7 +57,8 @@ const Table = ({ columns, data, itemClass = '' }: Props) => {
borderBottomLeftRadius={index1 === data.length - 1 && index2 === 0 ? 'md' : ''}
borderBottomEndRadius={
index1 === data.length - 1 && index2 === columns.length - 1 ? 'md' : ''
}>
}
>
{col.render ? col.render(item) : col.dataIndex ? `${item[col.dataIndex]}` : ''}
</Flex>
))
@@ -26,7 +26,8 @@ export default function AppMenu({ isMobile }: { isMobile: boolean }) {
width="16"
height="17"
viewBox="0 0 16 17"
fill="none">
fill="none"
>
<path
d="M14.4733 14.2786L12 11.8252C12.9601 10.6282 13.425 9.10876 13.2992 7.57942C13.1734 6.05009 12.4664 4.62708 11.3237 3.60299C10.1809 2.57889 8.6892 2.03156 7.15528 2.07354C5.62136 2.11551 4.16181 2.7436 3.07676 3.82865C1.99171 4.9137 1.36362 6.37325 1.32164 7.90717C1.27967 9.44109 1.827 10.9328 2.85109 12.0756C3.87519 13.2183 5.2982 13.9253 6.82753 14.0511C8.35686 14.1769 9.87627 13.712 11.0733 12.7519L13.5267 15.2052C13.5886 15.2677 13.6624 15.3173 13.7436 15.3512C13.8249 15.385 13.912 15.4024 14 15.4024C14.088 15.4024 14.1751 15.385 14.2564 15.3512C14.3376 15.3173 14.4114 15.2677 14.4733 15.2052C14.5935 15.0809 14.6607 14.9148 14.6607 14.7419C14.6607 14.569 14.5935 14.4029 14.4733 14.2786ZM7.33333 12.7519C6.41035 12.7519 5.5081 12.4782 4.74067 11.9654C3.97324 11.4526 3.3751 10.7238 3.02189 9.87108C2.66868 9.01836 2.57627 8.08005 2.75633 7.1748C2.9364 6.26956 3.38085 5.43804 4.0335 4.78539C4.68614 4.13275 5.51766 3.68829 6.42291 3.50822C7.32815 3.32816 8.26646 3.42058 9.11919 3.77378C9.97191 4.12699 10.7007 4.72513 11.2135 5.49256C11.7263 6.25999 12 7.16224 12 8.08522C12 9.3229 11.5083 10.5099 10.6332 11.3851C9.75799 12.2602 8.57101 12.7519 7.33333 12.7519Z"
fill="#5A646E"
@@ -61,7 +62,8 @@ export default function AppMenu({ isMobile }: { isMobile: boolean }) {
borderRadius={'40px'}
bottom={'28px'}
userSelect={'none'}
onClick={() => router.push('/develop')}>
onClick={() => router.push('/develop')}
>
<MyIcon name="tool" fill={'transparent'} />
{!isMobile && (
<Text ml="8px" color={'#485058'} fontWeight={500} cursor={'pointer'} fontSize={'12px'}>
@@ -22,7 +22,8 @@ export default function Layout({ children }: { children: JSX.Element }) {
templateColumns={isMobile ? '76px 1fr' : '270px 1fr'}
h="100vh"
overflow={'hidden'}
background={'rgba(150, 153, 180, 0.15)'}>
background={'rgba(150, 153, 180, 0.15)'}
>
<AppMenu isMobile={isMobile} />
<>{children}</>
</Grid>
@@ -65,14 +65,16 @@ export default function SideBar({ isMobile }: { isMobile: boolean }) {
as={'button'}
onClick={() => {
router.push(item.url);
}}>
}}
>
<Icon
flexShrink={0}
w="18px"
h="18px"
fill={item.acriveUrl.includes(router.route) ? '#219BF4' : '#485058'}
viewBox="0 0 20 21"
alignItems={'center'}>
alignItems={'center'}
>
{item.icon}
</Icon>
{!isMobile && (
@@ -80,7 +82,8 @@ export default function SideBar({ isMobile }: { isMobile: boolean }) {
ml="10px"
color={item.acriveUrl.includes(router.route) ? '#219BF4' : '#485058'}
fontSize={'16px'}
fontWeight={500}>
fontWeight={500}
>
{t(item.value)}
</Text>
)}
@@ -86,7 +86,8 @@ const DelModal = ({
variant={'solid'}
isDisabled={inputValue !== name}
isLoading={loading}
onClick={handleDelApp}>
onClick={handleDelApp}
>
{t('Confirm deletion')}
</Button>
</ModalFooter>
@@ -37,7 +37,8 @@ export default function InstanceList() {
w={'48px'}
h={'48px'}
justifyContent="center"
alignItems={'center'}>
alignItems={'center'}
>
<MyIcon color={'#7B838B'} name="empty"></MyIcon>
</Flex>
<Text mt={'12px'} fontSize={14} color={'#5A646E'}>
@@ -57,7 +58,8 @@ export default function InstanceList() {
pt="24px"
pr="42px"
pb="42px"
overflow={'auto'}>
overflow={'auto'}
>
{data &&
data?.map((item) => {
return (
@@ -76,7 +78,8 @@ export default function InstanceList() {
borderRadius={'8px'}
backgroundColor={'#fff'}
boxShadow={'0px 2px 4px 0px rgba(187, 196, 206, 0.25)'}
border={'1px solid #EAEBF0'}>
border={'1px solid #EAEBF0'}
>
<Box
p={'6px'}
w={'48px'}
@@ -84,7 +87,8 @@ export default function InstanceList() {
boxShadow={'0px 1px 2px 0.5px rgba(84, 96, 107, 0.20)'}
borderRadius={'4px'}
backgroundColor={'#fff'}
border={' 1px solid rgba(255, 255, 255, 0.50)'}>
border={' 1px solid rgba(255, 255, 255, 0.50)'}
>
<Image src={item?.icon} alt="" width={'36px'} height={'36px'} />
</Box>
<Text fontSize="24px" fontWeight={600} color="#24282C">
@@ -96,7 +100,8 @@ export default function InstanceList() {
fontSize={'12px'}
color={'#5A646E'}
fontWeight={400}
mt="auto">
mt="auto"
>
{t('Creation Time')}: {item?.createTime}
</Text>
<Flex justifyContent={'space-between'} alignItems={'center'} gap={'20px'}>
@@ -108,7 +113,8 @@ export default function InstanceList() {
alignItems={'center'}
cursor={'pointer'}
background={'#F4F6F8'}
borderRadius={'4px'}>
borderRadius={'4px'}
>
<Icon width="16px" height="17px" viewBox="0 0 16 17" fill="#363C42">
<g mask="url(#mask0_821_49862)">
<path
@@ -21,13 +21,15 @@ export default function MyApp() {
borderRadius={'12px'}
background={'linear-gradient(180deg, #FFF 0%, rgba(255, 255, 255, 0.70) 100%)'}
pt={'36px'}
pl="42px">
pl="42px"
>
<Tabs
fontWeight={500}
position="relative"
variant="unstyled"
index={tabIndex}
onChange={handleTabsChange}>
onChange={handleTabsChange}
>
<TabList>
<Tab p="0" mb="6px" color={tabIndex === 0 ? '#24282C' : '#7B838B'}>
{t('Installed')}
@@ -62,7 +62,8 @@ const Form = ({
w="200px"
className="template-dynamic-label"
color={'#333'}
userSelect={'none'}>
userSelect={'none'}
>
{item?.label}
{item?.required && (
<Text ml="2px" color={'#E53E3E'}>
@@ -92,14 +93,16 @@ const Form = ({
alignItems="center"
h={'160px'}
w={'100%'}
flexDirection="column">
flexDirection="column"
>
<Flex
border={'1px dashed #9CA2A8'}
borderRadius="50%"
w={'48px'}
h={'48px'}
justifyContent="center"
alignItems={'center'}>
alignItems={'center'}
>
<MyIcon color={'#7B838B'} name="empty"></MyIcon>
</Flex>
<Text mt={'12px'} fontSize={14} color={'#5A646E'}>
@@ -49,7 +49,8 @@ const Header = ({
w={'100%'}
h={'80px'}
alignItems={'center'}
backgroundColor={'rgba(255, 255, 255, 0.90)'}>
backgroundColor={'rgba(255, 255, 255, 0.90)'}
>
<Flex
boxShadow={'0px 1px 2px 0.5px rgba(84, 96, 107, 0.20)'}
flexShrink={0}
@@ -59,7 +60,8 @@ const Header = ({
h={'80px'}
borderRadius={'8px'}
backgroundColor={'#FBFBFC'}
border={' 1px solid rgba(255, 255, 255, 0.50)'}>
border={' 1px solid rgba(255, 255, 255, 0.50)'}
>
<Image src={templateDetail?.spec?.icon} alt="" width={'60px'} height={'60px'} />
</Flex>
<Flex ml={'24px'} w="520px" flexDirection={'column'}>
@@ -81,7 +83,8 @@ const Header = ({
mt={'8px'}
fontSize={'12px'}
color={'5A646E'}
fontWeight={400}>
fontWeight={400}
>
{templateDetail?.spec?.description}
</Text>
</Flex>
@@ -95,7 +98,8 @@ const Header = ({
bg={'myWhite.600'}
borderColor={'myGray.200'}
variant={'base'}
onClick={handleExportYaml}>
onClick={handleExportYaml}
>
{t('Export')} Yaml
</Button>
<Button px={4} minW={'140px'} h={'40px'} variant={'primary'} onClick={applyCb}>
@@ -61,7 +61,8 @@ const ReadMe = ({ templateDetail }: { templateDetail: TemplateType }) => {
borderBottom={'1px solid #DEE0E2'}
color={'#24282C'}
fontSize={'18px'}
fontWeight={500}>
fontWeight={500}
>
<MyIcon name={'markdown'} mr={5} w={'24px'} h={'24px'} ml={'42px'} color={'myGray.500'} />
README.md
</Box>
@@ -69,7 +70,8 @@ const ReadMe = ({ templateDetail }: { templateDetail: TemplateType }) => {
<ReactMarkdown
linkTarget={'_blank'}
rehypePlugins={[rehypeRaw, [rehypeRewrite, { rewrite: myRewrite }]]}
remarkPlugins={[remarkGfm, remarkUnwrapImages]}>
remarkPlugins={[remarkGfm, remarkUnwrapImages]}
>
{templateReadMe}
</ReactMarkdown>
</Box>
@@ -252,7 +252,8 @@ export default function EditApp({ appName, tabType }: { appName?: string; tabTyp
overflow={'auto'}
position={'relative'}
borderRadius={'12px'}
background={'linear-gradient(180deg, #FFF 0%, rgba(255, 255, 255, 0.70) 100%)'}>
background={'linear-gradient(180deg, #FFF 0%, rgba(255, 255, 255, 0.70) 100%)'}
>
<Flex
zIndex={99}
position={'sticky'}
@@ -264,13 +265,15 @@ export default function EditApp({ appName, tabType }: { appName?: string; tabTyp
justifyContent={'start'}
alignItems={'center'}
backgroundColor={'rgba(255, 255, 255)'}
backdropBlur={'100px'}>
backdropBlur={'100px'}
>
<Flex
alignItems={'center'}
fontWeight={500}
fontSize={16}
color={'#7B838B'}
cursor={'pointer'}>
cursor={'pointer'}
>
<Flex
alignItems={'center'}
css={{
@@ -281,14 +284,16 @@ export default function EditApp({ appName, tabType }: { appName?: string; tabTyp
fill: '#219BF4'
}
}
}}>
}}
>
<Icon
ml={'19px'}
viewBox="0 0 15 15"
fill={'#24282C'}
w={'15px'}
h="15px"
onClick={() => router.push('/')}>
onClick={() => router.push('/')}
>
<path d="M9.1875 13.1875L3.92187 7.9375C3.85937 7.875 3.81521 7.80729 3.78937 7.73438C3.76312 7.66146 3.75 7.58333 3.75 7.5C3.75 7.41667 3.76312 7.33854 3.78937 7.26562C3.81521 7.19271 3.85937 7.125 3.92187 7.0625L9.1875 1.79687C9.33333 1.65104 9.51562 1.57812 9.73438 1.57812C9.95312 1.57812 10.1406 1.65625 10.2969 1.8125C10.4531 1.96875 10.5312 2.15104 10.5312 2.35938C10.5312 2.56771 10.4531 2.75 10.2969 2.90625L5.70312 7.5L10.2969 12.0938C10.4427 12.2396 10.5156 12.4192 10.5156 12.6325C10.5156 12.8463 10.4375 13.0312 10.2812 13.1875C10.125 13.3438 9.94271 13.4219 9.73438 13.4219C9.52604 13.4219 9.34375 13.3438 9.1875 13.1875Z" />
</Icon>
<Text ml="4px" onClick={() => router.push('/')}>
@@ -298,7 +303,8 @@ export default function EditApp({ appName, tabType }: { appName?: string; tabTyp
<Text px="6px">/</Text>
<Text
_hover={{ fill: '#219BF4', color: '#219BF4' }}
color={router.pathname === '/deploy' ? '#262A32' : '#7B838B'}>
color={router.pathname === '/deploy' ? '#262A32' : '#7B838B'}
>
{data?.templateYaml?.metadata?.name}
</Text>
</Flex>
@@ -309,7 +315,8 @@ export default function EditApp({ appName, tabType }: { appName?: string; tabTyp
flexDirection={'column'}
width={'100%'}
flexGrow={1}
backgroundColor={'rgba(255, 255, 255, 0.90)'}>
backgroundColor={'rgba(255, 255, 255, 0.90)'}
>
<Header
templateDetail={data?.templateYaml!}
appName={''}
@@ -13,13 +13,15 @@ const BreadCrumbHeader = ({ applyCb }: { applyCb: () => void }) => {
justifyContent={'start'}
alignItems={'center'}
backgroundColor={'rgba(255, 255, 255)'}
backdropBlur={'100px'}>
backdropBlur={'100px'}
>
<Flex
alignItems={'center'}
fontWeight={500}
fontSize={16}
color={'#7B838B'}
cursor={'pointer'}>
cursor={'pointer'}
>
<Flex
alignItems={'center'}
css={{
@@ -30,13 +32,15 @@ const BreadCrumbHeader = ({ applyCb }: { applyCb: () => void }) => {
fill: '#219BF4'
}
}
}}>
}}
>
<Icon
viewBox="0 0 15 15"
fill={'#24282C'}
w={'15px'}
h="15px"
onClick={() => router.push('/')}>
onClick={() => router.push('/')}
>
<path d="M9.1875 13.1875L3.92187 7.9375C3.85937 7.875 3.81521 7.80729 3.78937 7.73438C3.76312 7.66146 3.75 7.58333 3.75 7.5C3.75 7.41667 3.76312 7.33854 3.78937 7.26562C3.81521 7.19271 3.85937 7.125 3.92187 7.0625L9.1875 1.79687C9.33333 1.65104 9.51562 1.57812 9.73438 1.57812C9.95312 1.57812 10.1406 1.65625 10.2969 1.8125C10.4531 1.96875 10.5312 2.15104 10.5312 2.35938C10.5312 2.56771 10.4531 2.75 10.2969 2.90625L5.70312 7.5L10.2969 12.0938C10.4427 12.2396 10.5156 12.4192 10.5156 12.6325C10.5156 12.8463 10.4375 13.0312 10.2812 13.1875C10.125 13.3438 9.94271 13.4219 9.73438 13.4219C9.52604 13.4219 9.34375 13.3438 9.1875 13.1875Z" />
</Icon>
<Text ml="4px" onClick={() => router.push('/')}>
@@ -46,7 +50,8 @@ const BreadCrumbHeader = ({ applyCb }: { applyCb: () => void }) => {
<Text px="6px">/</Text>
<Text
_hover={{ fill: '#219BF4', color: '#219BF4' }}
color={router.pathname === '/develop' ? '#262A32' : '#7B838B'}>
color={router.pathname === '/develop' ? '#262A32' : '#7B838B'}
>
{t('develop.YAML Detection Tool')}
</Text>
</Flex>
@@ -37,7 +37,8 @@ const Form = ({
w="200px"
className="template-dynamic-label"
color={'#333'}
userSelect={'none'}>
userSelect={'none'}
>
{item?.label}
{item?.required && (
<Text ml="2px" color={'#E53E3E'}>
@@ -66,14 +67,16 @@ const Form = ({
alignItems="center"
h={'100%'}
w={'100%'}
flexDirection="column">
flexDirection="column"
>
<Flex
border={'1px dashed #9CA2A8'}
borderRadius="50%"
w={'48px'}
h={'48px'}
justifyContent="center"
alignItems={'center'}>
alignItems={'center'}
>
<MyIcon color={'#7B838B'} name="empty"></MyIcon>
</Flex>
<Text mt={'12px'} fontSize={14} color={'#5A646E'}>
@@ -183,7 +183,8 @@ export default function Develop() {
borderRadius={'8px'}
overflowY={'hidden'}
overflowX={'scroll'}
flex={1}>
flex={1}
>
{/* left */}
<Flex flexDirection={'column'} w="50%" borderRight={'1px solid #EFF0F1'}>
<Flex
@@ -193,7 +194,8 @@ export default function Develop() {
alignItems={'center'}
backgroundColor={'#F8FAFB'}
px="36px"
borderRadius={'8px 8px 0px 0px '}>
borderRadius={'8px 8px 0px 0px '}
>
<MyIcon name="dev" color={'#24282C'} w={'24px'} h={'24px'}></MyIcon>
<Text fontWeight={'500'} fontSize={'16px'} color={'#24282C'} ml="8px">
{t('develop.Development')}
@@ -221,7 +223,8 @@ export default function Develop() {
alignItems={'center'}
backgroundColor={'#F8FAFB'}
pl="42px"
borderRadius={'8px 8px 0px 0px '}>
borderRadius={'8px 8px 0px 0px '}
>
<MyIcon name="eyeShow" color={'#24282C'} w={'24px'} h={'24px'}></MyIcon>
<Text fontWeight={'500'} fontSize={'16px'} color={'#24282C'} ml="8px">
{t('develop.Preview')}
@@ -233,7 +236,8 @@ export default function Develop() {
pt="26px"
pr={{ sm: '20px', md: '60px' }}
borderBottom={'1px solid #EFF0F1'}
flexDirection={'column'}>
flexDirection={'column'}
>
<Text fontWeight={'500'} fontSize={'18px'} color={'#24282C'}>
{t('develop.Configure Form')}
</Text>
@@ -249,7 +253,8 @@ export default function Develop() {
minW={'100px'}
h={'34px'}
variant={'link'}
onClick={handleExportYaml}>
onClick={handleExportYaml}
>
{t('Export')} Yaml
</Button>
</Flex>
@@ -75,13 +75,15 @@ export default function AppList() {
borderRadius={'12px'}
background={'linear-gradient(180deg, #FFF 0%, rgba(255, 255, 255, 0.70) 100%)'}
py={'36px'}
px="42px">
px="42px"
>
<Grid
justifyContent={'center'}
w={'100%'}
gridTemplateColumns="repeat(auto-fill,minmax(300px,1fr))"
gridGap={'24px'}
minW={'765px'}>
minW={'765px'}
>
{filterData &&
filterData?.map((item: TemplateType) => {
return (
@@ -101,7 +103,8 @@ export default function AppList() {
borderRadius={'8px'}
backgroundColor={'#fff'}
boxShadow={'0px 2px 4px 0px rgba(187, 196, 206, 0.25)'}
border={'1px solid #EAEBF0'}>
border={'1px solid #EAEBF0'}
>
<Box
p={'6px'}
w={'48px'}
@@ -109,7 +112,8 @@ export default function AppList() {
boxShadow={'0px 1px 2px 0.5px rgba(84, 96, 107, 0.20)'}
borderRadius={'4px'}
backgroundColor={'#fff'}
border={' 1px solid rgba(255, 255, 255, 0.50)'}>
border={' 1px solid rgba(255, 255, 255, 0.50)'}
>
<Image src={item?.spec?.icon} alt="" width={'36px'} height={'36px'} />
</Box>
<Flex mt={'12px'} alignItems={'center'} justifyContent="space-between">
@@ -125,7 +129,8 @@ export default function AppList() {
h={'28px'}
borderRadius={'4px'}
border={'1px solid #DEE0E2'}
backgroundColor={'#F4F6F8'}>
backgroundColor={'#F4F6F8'}
>
Deploy
</Flex>
</Flex>
@@ -141,7 +146,8 @@ export default function AppList() {
mt={'8px'}
fontSize={'12px'}
color={'5A646E'}
fontWeight={400}>
fontWeight={400}
>
{item?.spec?.description}
</Text>
<Flex mt={'auto'} justifyContent={'space-between'} alignItems={'center'}>
@@ -157,7 +163,8 @@ export default function AppList() {
fill="#5A646E"
_hover={{
fill: '#0884DD'
}}>
}}
>
<path d="M13.6667 9.00004C13.4 9.00004 13.1667 9.23337 13.1667 9.50004V13.5C13.1667 13.6 13.1 13.6667 13 13.6667H3C2.9 13.6667 2.83333 13.6 2.83333 13.5V3.50004C2.83333 3.40004 2.9 3.33337 3 3.33337H7C7.26667 3.33337 7.5 3.10004 7.5 2.83337C7.5 2.56671 7.26667 2.33337 7 2.33337H3C2.36667 2.33337 1.83333 2.86671 1.83333 3.50004V13.5C1.83333 14.1334 2.36667 14.6667 3 14.6667H13C13.6333 14.6667 14.1667 14.1334 14.1667 13.5V9.50004C14.1667 9.23337 13.9333 9.00004 13.6667 9.00004Z" />
<path d="M13.6667 2.33337H10C9.73333 2.33337 9.5 2.56671 9.5 2.83337C9.5 3.10004 9.73333 3.33337 10 3.33337H12.4667L7.96667 7.80004C7.76667 8.00004 7.76667 8.30004 7.96667 8.50004C8.06667 8.60004 8.2 8.63337 8.33333 8.63337C8.46667 8.63337 8.6 8.60004 8.7 8.50004L13.1667 4.03337V6.50004C13.1667 6.76671 13.4 7.00004 13.6667 7.00004C13.9333 7.00004 14.1667 6.76671 14.1667 6.50004V2.83337C14.1667 2.56671 13.9333 2.33337 13.6667 2.33337Z" />
</Icon>
@@ -114,7 +114,8 @@ export default function AppList({ instanceName }: { instanceName: string }) {
variant={'base'}
leftIcon={<MyIcon name={'detail'} transform={'translateY(-1px)'} />}
px={3}
onClick={handleToDetailPage}>
onClick={handleToDetailPage}
>
{t('Details')}
</Button>
</Flex>
@@ -143,14 +144,16 @@ export default function AppList({ instanceName }: { instanceName: string }) {
justifyContent={'center'}
alignItems={'center'}
background={'white'}
p="32px">
p="32px"
>
<Flex
border={'1px dashed #9CA2A8'}
borderRadius="50%"
w={'48px'}
h={'48px'}
justifyContent="center"
alignItems={'center'}>
alignItems={'center'}
>
<MyIcon color={'#7B838B'} name="empty"></MyIcon>
</Flex>
<Text mt={'12px'} fontSize={14} color={'#5A646E'}>
@@ -100,7 +100,8 @@ export default function CronJobList({ instanceName }: { instanceName: string })
variant={'base'}
leftIcon={<MyIcon name={'detail'} transform={'translateY(-1px)'} />}
px={3}
onClick={handleToDetailPage}>
onClick={handleToDetailPage}
>
{t('Details')}
</Button>
</Flex>
@@ -129,14 +130,16 @@ export default function CronJobList({ instanceName }: { instanceName: string })
justifyContent={'center'}
alignItems={'center'}
background={'white'}
p="32px">
p="32px"
>
<Flex
border={'1px dashed #9CA2A8'}
borderRadius="50%"
w={'48px'}
h={'48px'}
justifyContent="center"
alignItems={'center'}>
alignItems={'center'}
>
<MyIcon color={'#7B838B'} name="empty"></MyIcon>
</Flex>
<Text mt={'12px'} fontSize={14} color={'#5A646E'}>
@@ -100,7 +100,8 @@ export default function AppList({ instanceName }: { instanceName: string }) {
variant={'base'}
leftIcon={<MyIcon name={'detail'} transform={'translateY(-1px)'} />}
px={3}
onClick={handleToDetailPage}>
onClick={handleToDetailPage}
>
{t('Details')}
</Button>
</Flex>
@@ -131,14 +132,16 @@ export default function AppList({ instanceName }: { instanceName: string }) {
justifyContent={'center'}
alignItems={'center'}
background={'white'}
p="32px">
p="32px"
>
<Flex
border={'1px dashed #9CA2A8'}
borderRadius="50%"
w={'48px'}
h={'48px'}
justifyContent="center"
alignItems={'center'}>
alignItems={'center'}
>
<MyIcon color={'#7B838B'} name="empty"></MyIcon>
</Flex>
<Text mt={'12px'} fontSize={14} color={'#5A646E'}>
@@ -86,7 +86,8 @@ const DelModal = ({
variant={'solid'}
isDisabled={inputValue !== name}
isLoading={loading}
onClick={handleDelApp}>
onClick={handleDelApp}
>
{t('Confirm deletion')}
</Button>
</ModalFooter>
@@ -34,14 +34,16 @@ export default function Header({ instanceName }: { instanceName: string }) {
pl="24px"
pr="36px"
alignItems={'center'}
borderBottom={'1px solid rgba(0, 0, 0, 0.07)'}>
borderBottom={'1px solid rgba(0, 0, 0, 0.07)'}
>
<Icon
cursor={'pointer'}
width="35px"
height="36px"
viewBox="0 0 35 36"
fill="#5A646E"
onClick={() => router.push('/app')}>
onClick={() => router.push('/app')}
>
<path d="M20.3207 27L11.6118 18L20.3207 9L22.3527 11.1L15.676 18L22.3527 24.9L20.3207 27Z" />
</Icon>
<Box
@@ -52,7 +54,8 @@ export default function Header({ instanceName }: { instanceName: string }) {
boxShadow={'0px 1px 2px 0.5px rgba(84, 96, 107, 0.20)'}
borderRadius={'4px'}
backgroundColor={'#fff'}
border={' 1px solid rgba(255, 255, 255, 0.50)'}>
border={' 1px solid rgba(255, 255, 255, 0.50)'}
>
<Image src={data?.icon} alt="" width={'32px'} height={'32px'} />
</Box>
<Text fontWeight={600} fontSize={'18px'} ml="16px">
@@ -68,7 +71,8 @@ export default function Header({ instanceName }: { instanceName: string }) {
background={'#FFF'}
borderRadius={'4px'}
border={'1px solid #DEE0E2'}
onClick={onOpenDelModal}>
onClick={onOpenDelModal}
>
<Icon width="16px" height="17px" viewBox="0 0 16 17" fill="#121416">
<path d="M4.66667 14.5C4.30001 14.5 3.98601 14.3693 3.72467 14.108C3.46334 13.8467 3.33289 13.5329 3.33334 13.1667V4.5H2.66667V3.16667H6.00001V2.5H10V3.16667H13.3333V4.5H12.6667V13.1667C12.6667 13.5333 12.536 13.8473 12.2747 14.1087C12.0133 14.37 11.6996 14.5004 11.3333 14.5H4.66667ZM11.3333 4.5H4.66667V13.1667H11.3333V4.5ZM6.00001 11.8333H7.33334V5.83333H6.00001V11.8333ZM8.66667 11.8333H10V5.83333H8.66667V11.8333Z" />
</Icon>
@@ -81,14 +81,16 @@ export default function OtherList({ instanceName }: { instanceName: string }) {
justifyContent={'center'}
alignItems={'center'}
background={'white'}
p="32px">
p="32px"
>
<Flex
border={'1px dashed #9CA2A8'}
borderRadius="50%"
w={'48px'}
h={'48px'}
justifyContent="center"
alignItems={'center'}>
alignItems={'center'}
>
<MyIcon color={'#7B838B'} name="empty"></MyIcon>
</Flex>
<Text mt={'12px'} fontSize={14} color={'#5A646E'}>
+7 -7
View File
@@ -9,16 +9,16 @@
"lint": "next lint"
},
"dependencies": {
"@chakra-ui/react": "^2.8.0",
"@chakra-ui/react": "^2.8.1",
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@kubernetes/client-node": "0.18.0",
"@tanstack/react-query": "^4.29.25",
"@tanstack/react-query": "^4.35.3",
"axios": "1.2.1",
"clsx": "^1.2.1",
"eslint": "8.36.0",
"eslint-config-next": "13.2.4",
"framer-motion": "^10.12.22",
"framer-motion": "^10.16.4",
"immer": "^9.0.21",
"js-yaml": "^4.1.0",
"lodash": "^4.17.21",
@@ -27,14 +27,14 @@
"react": "18.2.0",
"react-dom": "18.2.0",
"sealos-desktop-sdk": "workspace:*",
"zustand": "^4.3.9"
"zustand": "^4.4.1"
},
"devDependencies": {
"@types/js-yaml": "^4.0.5",
"@types/lodash": "^4.14.195",
"@types/js-yaml": "^4.0.6",
"@types/lodash": "^4.14.199",
"@types/node": "18.15.5",
"@types/react": "18.0.28",
"@types/react-dom": "18.0.11",
"sass": "^1.63.6"
"sass": "^1.68.0"
}
}
File diff suppressed because it is too large Load Diff