Compare commits

..

3 Commits

Author SHA1 Message Date
5b47ca8a40 update 2025-08-08 18:26:26 +08:00
f1f8db340b update 2025-08-08 17:17:28 +08:00
519713ffb4 update 2025-08-08 17:17:20 +08:00
14 changed files with 92 additions and 1333 deletions

File diff suppressed because one or more lines are too long

5
.gitignore vendored
View File

@@ -24,6 +24,5 @@ dist-ssr
*.sw?
.vscode
# Sentry Config File
.env.sentry-build-plugin
stats.html
build

1
.husky/pre-commit Normal file
View File

@@ -0,0 +1 @@
pnpm test

1
.stylelintcache Normal file
View File

@@ -0,0 +1 @@
[["1","2","3"],{"key":"4","value":"5"},{"key":"6","value":"7"},{"key":"8","value":"9"},"/Users/y/Workspace/ds.pages.yoshino-s.xyz/app/pages/Exception/ErrorPage.module.css",{"size":890,"mtime":1754644590804,"data":"10"},"/Users/y/Workspace/ds.pages.yoshino-s.xyz/app/main.css",{"size":526,"mtime":1752488689137,"data":"11"},"/Users/y/Workspace/ds.pages.yoshino-s.xyz/app/component/Hits/Hits.module.css",{"size":573,"mtime":1754644590795,"data":"12"},{"hashOfConfig":"13"},{"hashOfConfig":"13"},{"hashOfConfig":"13"},"1evb2tp"]

1
.stylelintignore Normal file
View File

@@ -0,0 +1 @@
build

28
.stylelintrc.json Normal file
View File

@@ -0,0 +1,28 @@
{
"extends": ["stylelint-config-standard-scss"],
"rules": {
"custom-property-pattern": null,
"selector-class-pattern": null,
"scss/no-duplicate-mixins": null,
"declaration-empty-line-before": null,
"declaration-block-no-redundant-longhand-properties": null,
"alpha-value-notation": null,
"custom-property-empty-line-before": null,
"property-no-vendor-prefix": null,
"color-function-notation": null,
"length-zero-no-unit": null,
"selector-not-notation": null,
"no-descending-specificity": null,
"comment-empty-line-before": null,
"scss/at-mixin-pattern": null,
"scss/at-rule-no-unknown": null,
"value-keyword-case": null,
"media-feature-range-notation": null,
"selector-pseudo-class-no-unknown": [
true,
{
"ignorePseudoClasses": ["global"]
}
]
}
}

View File

@@ -1,29 +1,32 @@
.img-wrapper{
column-count: 1;
column-gap: 10px;
@media screen and (min-width: 500px) {
column-count: 2;
}
@media screen and (min-width: 720px) {
column-count: 3;
}
@media screen and (min-width: 1100px) {
column-count: 5;
}
counter-reset: count;
margin: 0 auto;
@media (max-width: $mantine-breakpoint-md) {
column-count: 2;
}
@media (max-width: $mantine-breakpoint-sm) {
.img-wrapper {
column-count: 1;
}
column-gap: 10px;
&>div{
position: relative;
margin-bottom: 10px;
}
@media screen and (min-width: 500px) {
column-count: 2;
}
@media screen and (min-width: 720px) {
column-count: 3;
}
@media screen and (min-width: 1100px) {
column-count: 5;
}
counter-reset: count;
margin: 0 auto;
@media (max-width: $mantine-breakpoint-md) {
column-count: 2;
}
@media (max-width: $mantine-breakpoint-sm) {
column-count: 1;
}
& > div {
position: relative;
margin-bottom: 10px;
}
}

View File

@@ -1,40 +1,38 @@
.root {
padding-top: rem(80px);
padding-bottom: rem(120px);
background-color: var(--mantine-color-blue-filled);
padding-top: rem(80px);
padding-bottom: rem(120px);
background-color: var(--mantine-color-blue-filled);
}
.label {
text-align: center;
font-weight: 900;
font-size: rem(220px);
line-height: 1;
margin-bottom: calc(var(--mantine-spacing-xl) * 1.5);
color: var(--mantine-color-blue-3);
text-align: center;
font-weight: 900;
font-size: rem(220px);
line-height: 1;
margin-bottom: calc(var(--mantine-spacing-xl) * 1.5);
color: var(--mantine-color-blue-3);
@media (max-width: $mantine-breakpoint-sm) {
font-size: rem(120px);
}
@media (max-width: $mantine-breakpoint-sm) {
font-size: rem(120px);
}
}
.title {
font-family:
Greycliff CF,
var(--mantine-font-family);
text-align: center;
font-weight: 900;
font-size: rem(38px);
color: var(--mantine-color-white);
font-family: "Greycliff CF", var(--mantine-font-family);
text-align: center;
font-weight: 900;
font-size: rem(38px);
color: var(--mantine-color-white);
@media (max-width: $mantine-breakpoint-sm) {
font-size: rem(32px);
}
@media (max-width: $mantine-breakpoint-sm) {
font-size: rem(32px);
}
}
.description {
max-width: rem(540px);
margin: auto;
margin-top: var(--mantine-spacing-xl);
margin-bottom: calc(var(--mantine-spacing-xl) * 1.5);
color: var(--mantine-color-blue-1);
max-width: rem(540px);
margin: auto;
margin-top: var(--mantine-spacing-xl);
margin-bottom: calc(var(--mantine-spacing-xl) * 1.5);
color: var(--mantine-color-blue-1);
}

View File

@@ -56,7 +56,7 @@ export default function SettingsPage() {
try {
new URL(v.s3Url, location.origin);
form.clearFieldError("s3Url");
} catch (e) {
} catch {
form.setFieldError("s3Url", "Invalid Minio URL");
}
@@ -69,7 +69,7 @@ export default function SettingsPage() {
setMeilisearchVersion(version.pkgVersion);
form.clearFieldError("meilisearchUrl");
form.clearFieldError("meilisearchToken");
} catch (e) {
} catch {
form.setFieldError("meilisearchUrl", "Invalid Meilisearch URL");
form.setFieldError("meilisearchToken", "Invalid Meilisearch Token");
}

View File

@@ -33,8 +33,6 @@
"@radix-ui/react-slot": "^1.2.3",
"@react-router/node": "^7.6.3",
"@react-router/serve": "^7.6.3",
"@sentry/react": "^9.33.0",
"@sentry/react-router": "^9.33.0",
"@tanstack/react-query": "^5.81.5",
"@types/canvas-confetti": "^1.9.0",
"@types/sarif": "^2.1.7",
@@ -112,7 +110,6 @@
},
"pnpm": {
"onlyBuiltDependencies": [
"@sentry/cli",
"es5-ext",
"esbuild",
"unrs-resolver"

1240
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,13 +1,6 @@
import type { Config } from "@react-router/dev/config";
import { sentryOnBuildEnd } from "@sentry/react-router";
export default {
appDirectory: "app",
ssr: false,
buildEnd: async ({ viteConfig, reactRouterConfig, buildManifest }) => {
// ...
// Call this at the end of the hook
await sentryOnBuildEnd({ viteConfig, reactRouterConfig, buildManifest });
},
} satisfies Config;

1
tsconfig.tsbuildinfo Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,37 +1,14 @@
import { reactRouter } from "@react-router/dev/vite";
import {
type SentryReactRouterBuildOptions,
sentryReactRouter,
} from "@sentry/react-router";
import { defineConfig } from "vite";
import devtoolsJson from "vite-plugin-devtools-json";
import tsconfigPaths from "vite-tsconfig-paths";
const sentryConfig: SentryReactRouterBuildOptions = {
telemetry: false,
project: "devsecops_ssl-op-demo-new",
sourceMapsUploadOptions: {
filesToDeleteAfterUpload: [],
},
// An auth token is required for uploading source maps.
authToken:
"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",
};
export default defineConfig({
appType: "spa",
server: {
cors: true,
},
plugins: [
reactRouter(),
devtoolsJson(),
tsconfigPaths(),
sentryReactRouter(sentryConfig, {
command: "build",
mode: "production",
}),
],
plugins: [reactRouter(), devtoolsJson(), tsconfigPaths()],
build: {
sourcemap: true,
assetsDir: "static",