mirror of
https://github.com/Lifeforge-app/lifeforge.git
synced 2026-03-03 00:27:01 +00:00
style: prettier reformatting of the entire codebase
Former-commit-id: 6ad2fac2e9cab83dd484e90e80732067d22616e8 [formerly 0834b7e2aaeb6a04e31f5f04cf88f01b2c256986] [formerly a4dcf0af4dfe6fcf744184676baa2d4caeb40fc7 [formerly 9632ffb6671d8f30ca33c51bda106c299a4c07da]] Former-commit-id: 23ac95ccea08e36479fe17ac5ae4c2bdc4d77119 [formerly 450788517ac9fabdc16607b8f41785bb5c55917e] Former-commit-id: 256d0df6be62899478c8a3a5258f296649f4672d
This commit is contained in:
52
.github/workflows/build.yml
vendored
52
.github/workflows/build.yml
vendored
@@ -2,7 +2,7 @@ name: Build
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [ opened, synchronize, reopened ]
|
||||
types: [opened, synchronize, reopened]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
@@ -12,56 +12,56 @@ jobs:
|
||||
build-backend:
|
||||
name: Build Backend
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
|
||||
- name: Setup Bun
|
||||
uses: oven-sh/setup-bun@v2
|
||||
with:
|
||||
bun-version: latest
|
||||
|
||||
|
||||
- name: Install dependencies
|
||||
run: bun install --frozen-lockfile
|
||||
|
||||
|
||||
- name: Type check server
|
||||
run: bun run forge types server
|
||||
|
||||
|
||||
- name: Build server
|
||||
run: bun run forge build server
|
||||
|
||||
build-frontend:
|
||||
name: Build Frontend
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
|
||||
- name: Setup Bun
|
||||
uses: oven-sh/setup-bun@v2
|
||||
with:
|
||||
bun-version: latest
|
||||
|
||||
|
||||
- name: Install dependencies
|
||||
run: bun install --frozen-lockfile
|
||||
|
||||
|
||||
- name: Type check shared package
|
||||
run: bun run forge types shared
|
||||
|
||||
|
||||
- name: Build shared package
|
||||
run: bun run forge build shared
|
||||
|
||||
|
||||
- name: Type check UI package
|
||||
run: bun run forge types ui
|
||||
|
||||
- name: Build UI package
|
||||
|
||||
- name: Build UI package
|
||||
run: bun run forge build ui
|
||||
|
||||
|
||||
- name: Type check client
|
||||
run: bun run forge types client
|
||||
|
||||
|
||||
- name: Build client
|
||||
run: bun run forge build client
|
||||
|
||||
@@ -70,7 +70,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-backend, build-frontend]
|
||||
if: always() && github.event_name == 'pull_request'
|
||||
|
||||
|
||||
steps:
|
||||
- name: Comment PR
|
||||
uses: actions/github-script@v7
|
||||
@@ -80,10 +80,10 @@ jobs:
|
||||
const runId = context.runId;
|
||||
const backendResult = '${{ needs.build-backend.result }}';
|
||||
const frontendResult = '${{ needs.build-frontend.result }}';
|
||||
|
||||
|
||||
let summary = '## 🔨 Build Results\n\n';
|
||||
let allSuccess = true;
|
||||
|
||||
|
||||
// Backend status
|
||||
if (backendResult === 'success') {
|
||||
summary += '✅ **Backend Build**: Passed\n';
|
||||
@@ -91,7 +91,7 @@ jobs:
|
||||
summary += `❌ **Backend Build**: Failed (${backendResult})\n`;
|
||||
allSuccess = false;
|
||||
}
|
||||
|
||||
|
||||
// Frontend status
|
||||
if (frontendResult === 'success') {
|
||||
summary += '✅ **Frontend Build**: Passed\n';
|
||||
@@ -99,29 +99,29 @@ jobs:
|
||||
summary += `❌ **Frontend Build**: Failed (${frontendResult})\n`;
|
||||
allSuccess = false;
|
||||
}
|
||||
|
||||
|
||||
summary += '\n';
|
||||
|
||||
|
||||
if (allSuccess) {
|
||||
summary += '🎉 All builds completed successfully!';
|
||||
} else {
|
||||
summary += '⚠️ One or more builds failed. Please check the logs for details.';
|
||||
}
|
||||
|
||||
|
||||
summary += `\n\n🔗 [View full workflow run](https://github.com/${owner}/${repo}/actions/runs/${runId})`;
|
||||
|
||||
|
||||
// Find existing comment to update
|
||||
const comments = await github.rest.issues.listComments({
|
||||
owner,
|
||||
repo,
|
||||
issue_number: number,
|
||||
});
|
||||
|
||||
|
||||
const botComment = comments.data.find(
|
||||
comment => comment.user.type === 'Bot' &&
|
||||
comment.body.includes('## 🔨 Build Results')
|
||||
);
|
||||
|
||||
|
||||
if (botComment) {
|
||||
// Update existing comment
|
||||
await github.rest.issues.updateComment({
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
Generate TypeScript prop interface docstrings following this exact convention:
|
||||
|
||||
**FORMAT**: Use single-line JSDoc `/** Description. */`
|
||||
**FORMAT**: Use single-line JSDoc `/** Description. */`
|
||||
|
||||
**PHRASING RULES**:
|
||||
|
||||
- Boolean props: "Whether the [component] is [state/condition]."
|
||||
- Callback functions: "Callback function called when [event/condition]."
|
||||
- String/value props: "The [description] [additional context]."
|
||||
@@ -15,6 +16,7 @@ Generate TypeScript prop interface docstrings following this exact convention:
|
||||
- Callbacks with changes: "Callback function called when the [property] changes."
|
||||
|
||||
**SPECIAL PATTERNS**:
|
||||
|
||||
- For defaults: "The [description]. Defaults to '[value]'."
|
||||
- For Tailwind CSS: "Additional CSS class names to apply to the [element]. Use `!` suffix for Tailwind CSS class overrides."
|
||||
- For i18n namespace: "The i18n namespace for internationalization. See the [main documentation](https://docs.lifeforge.melvinchia.dev) for more details."
|
||||
@@ -22,9 +24,10 @@ Generate TypeScript prop interface docstrings following this exact convention:
|
||||
- For tProps props: "Additional properties for the translation function. Used for dynamic translations. See the [i18n documentation](https://docs.lifeforge.melvinchia.dev) for more details."
|
||||
|
||||
**REQUIREMENTS**:
|
||||
|
||||
- Start with capital letter, end with period
|
||||
- Be concise but descriptive
|
||||
- Use consistent terminology across similar props
|
||||
- Include examples in parentheses when helpful (e.g., "#FF0000")
|
||||
|
||||
Generate docstrings for the selected interface.
|
||||
Generate docstrings for the selected interface.
|
||||
|
||||
12
.prettierrc
12
.prettierrc
@@ -8,11 +8,9 @@
|
||||
"@trivago/prettier-plugin-sort-imports",
|
||||
"prettier-plugin-tailwindcss"
|
||||
],
|
||||
"importOrder": [
|
||||
"^shared/(.*)$",
|
||||
"@apps/(.*)$",
|
||||
"^[./]"
|
||||
],
|
||||
"importOrder": ["^shared/(.*)$", "@apps/(.*)$", "^[./]"],
|
||||
"importOrderSeparation": true,
|
||||
"importOrderSortSpecifiers": true
|
||||
}
|
||||
"importOrderSortSpecifiers": true,
|
||||
"tabWidth": 2,
|
||||
"bracketSameLine": false
|
||||
}
|
||||
|
||||
9
.vscode/settings.json
vendored
9
.vscode/settings.json
vendored
@@ -1,10 +1,5 @@
|
||||
{
|
||||
"cSpell.words": [
|
||||
"ITMDB",
|
||||
"nuqs",
|
||||
"Sizer",
|
||||
"subnamespace"
|
||||
],
|
||||
"cSpell.words": ["ITMDB", "nuqs", "Sizer", "subnamespace"],
|
||||
"typescript.tsdk": "node_modules/typescript/lib",
|
||||
"typescript.experimental.useTsgo": false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,50 +1,36 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": [
|
||||
"ES2020",
|
||||
"DOM",
|
||||
"DOM.Iterable",
|
||||
"ES2024.Object"
|
||||
],
|
||||
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": [
|
||||
"./src/index"
|
||||
],
|
||||
"@/*": [
|
||||
"./src/*"
|
||||
],
|
||||
"@server/*": [
|
||||
"../../../server/src/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable", "ES2024.Object"],
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": ["./src/index"],
|
||||
"@/*": ["./src/*"],
|
||||
"@server/*": ["../../../server/src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["./src/**/*", "./manifest.ts"],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
"type": "module"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
|
||||
@@ -1,50 +1,36 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": [
|
||||
"ES2020",
|
||||
"DOM",
|
||||
"DOM.Iterable",
|
||||
"ES2024.Object"
|
||||
],
|
||||
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": [
|
||||
"./src/index"
|
||||
],
|
||||
"@/*": [
|
||||
"./src/*"
|
||||
],
|
||||
"@server/*": [
|
||||
"../../../server/src/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable", "ES2024.Object"],
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": ["./src/index"],
|
||||
"@/*": ["./src/*"],
|
||||
"@server/*": ["../../../server/src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["./src/**/*", "./manifest.ts"],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
"type": "module"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
|
||||
@@ -172,8 +172,9 @@ function AnnasModal({ onClose }: { onClose: () => void }) {
|
||||
</span>
|
||||
</p>
|
||||
<p className="text-bg-500 text-sm font-light">
|
||||
{data.total} result{data.total !== 1 ? 's' : ''} found on
|
||||
page {currentPage} of {data.totalPages}
|
||||
{data.total} result
|
||||
{data.total !== 1 ? 's' : ''} found on page {currentPage} of{' '}
|
||||
{data.totalPages}
|
||||
</p>
|
||||
</div>
|
||||
<Pagination
|
||||
|
||||
@@ -26,7 +26,9 @@ function ModifyModal({
|
||||
})
|
||||
).mutationOptions({
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ['booksLibrary', stuff] })
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: ['booksLibrary', stuff]
|
||||
})
|
||||
},
|
||||
onError: () => {
|
||||
toast.error(`Failed to ${type} ${_.camelCase(stuff)}`)
|
||||
|
||||
@@ -79,7 +79,10 @@ function BooksLibrary() {
|
||||
new
|
||||
</Button>
|
||||
}
|
||||
classNames={{ wrapper: 'hidden md:block', menu: 'w-64' }}
|
||||
classNames={{
|
||||
wrapper: 'hidden md:block',
|
||||
menu: 'w-64'
|
||||
}}
|
||||
>
|
||||
<ContextMenuItem
|
||||
icon="tabler:upload"
|
||||
|
||||
@@ -1,50 +1,36 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": [
|
||||
"ES2020",
|
||||
"DOM",
|
||||
"DOM.Iterable",
|
||||
"ES2024.Object"
|
||||
],
|
||||
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": [
|
||||
"./src/index"
|
||||
],
|
||||
"@/*": [
|
||||
"./src/*"
|
||||
],
|
||||
"@server/*": [
|
||||
"../../../server/src/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable", "ES2024.Object"],
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": ["./src/index"],
|
||||
"@/*": ["./src/*"],
|
||||
"@server/*": ["../../../server/src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["./src/**/*", "./manifest.ts"],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -134,4 +134,4 @@
|
||||
"kindleSent": "Fired process to send the selected document to the targeted email address.",
|
||||
"bookmarkedBooks": "Bookmarked Books",
|
||||
"bookmarkedBooksDesc": "You have {{number}} bookmarked book(s)"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,4 +134,4 @@
|
||||
"kindleSent": "Proses dijalankan untuk menghantar dokumen terpilih ke alamat e-mel yang disasarkan.",
|
||||
"bookmarkedBooks": "Buku Yang Ditempah",
|
||||
"bookmarkedBooksDesc": "Anda mempunyai {{number}} buku yang ditandai"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,4 +134,4 @@
|
||||
"kindleSent": "已启动进程将所选文档发送到目标邮箱地址。",
|
||||
"bookmarkedBooks": "已收藏的书籍",
|
||||
"bookmarkedBooksDesc": "您有 {{number}} 本书已添加书签"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,4 +134,4 @@
|
||||
"kindleSent": "已啟動程序將所選文件傳送到目標電子郵件地址。",
|
||||
"bookmarkedBooks": "已書籤的書籍",
|
||||
"bookmarkedBooksDesc": "您有 {{number}} 本書已加書籤"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
"type": "module"
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import { forgeController, forgeRouter } from '@functions/routes'
|
||||
import { ClientError } from '@functions/routes/utils/response'
|
||||
import { addToTaskPool, updateTaskInPool } from '@functions/socketio/taskPool'
|
||||
import convertPDFToImage from '@functions/utils/convertPDFToImage'
|
||||
import { SCHEMAS } from '@schema'
|
||||
import { EPub } from 'epub2'
|
||||
import { countWords } from 'epub-wordcount'
|
||||
import fs from 'fs'
|
||||
@@ -14,8 +15,6 @@ import mailer from 'nodemailer'
|
||||
import pdfPageCounter from 'pdf-page-counter'
|
||||
import z from 'zod'
|
||||
|
||||
import { SCHEMAS } from '@schema'
|
||||
|
||||
const list = forgeController
|
||||
.query()
|
||||
.description(
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
|
||||
@@ -39,7 +39,10 @@ function EventDetailsHeader({
|
||||
.mutationOptions({
|
||||
onSuccess: () => {
|
||||
queryClient.setQueryData(
|
||||
forgeAPI.calendar.events.getByDateRange.input({ start, end }).key,
|
||||
forgeAPI.calendar.events.getByDateRange.input({
|
||||
start,
|
||||
end
|
||||
}).key,
|
||||
(oldData: CalendarEvent[]) => {
|
||||
return oldData.filter(item => item.id !== event.id)
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ function EventItemButton({
|
||||
title,
|
||||
color,
|
||||
icon,
|
||||
isStrikethrough,
|
||||
isStrikethrough
|
||||
}: {
|
||||
id: string
|
||||
title: string
|
||||
|
||||
@@ -23,7 +23,9 @@ function ModifyCalendarModal({
|
||||
const mutation = useMutation(
|
||||
(type === 'create'
|
||||
? forgeAPI.calendar.calendars.create
|
||||
: forgeAPI.calendar.calendars.update.input({ id: initialData?.id || '' })
|
||||
: forgeAPI.calendar.calendars.update.input({
|
||||
id: initialData?.id || ''
|
||||
})
|
||||
).mutationOptions({
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({
|
||||
|
||||
@@ -124,8 +124,16 @@ function ModifyEventModal({
|
||||
required: true,
|
||||
icon: 'tabler:calendar',
|
||||
options: [
|
||||
{ value: 'single', text: 'Single Event', icon: 'tabler:calendar' },
|
||||
{ value: 'recurring', text: 'Recurring Event', icon: 'tabler:repeat' }
|
||||
{
|
||||
value: 'single',
|
||||
text: 'Single Event',
|
||||
icon: 'tabler:calendar'
|
||||
},
|
||||
{
|
||||
value: 'recurring',
|
||||
text: 'Recurring Event',
|
||||
icon: 'tabler:repeat'
|
||||
}
|
||||
],
|
||||
disabled: type === 'update'
|
||||
},
|
||||
|
||||
@@ -1,50 +1,36 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": [
|
||||
"ES2020",
|
||||
"DOM",
|
||||
"DOM.Iterable",
|
||||
"ES2024.Object"
|
||||
],
|
||||
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": [
|
||||
"./src/index"
|
||||
],
|
||||
"@/*": [
|
||||
"./src/*"
|
||||
],
|
||||
"@server/*": [
|
||||
"../../../server/src/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable", "ES2024.Object"],
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": ["./src/index"],
|
||||
"@/*": ["./src/*"],
|
||||
"@server/*": ["../../../server/src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["./src/**/*", "./manifest.ts"],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -171,4 +171,4 @@
|
||||
"todaysEvent": "Today's Events",
|
||||
"miniCalendar": "Mini Calendar"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,4 +171,4 @@
|
||||
"todaysEvent": "Acara Hari Ini",
|
||||
"miniCalendar": "Kalendar Mini"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,4 +171,4 @@
|
||||
"todaysEvent": "今天的事件",
|
||||
"miniCalendar": "迷你日历"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,4 +171,4 @@
|
||||
"todaysEvent": "今天的事件",
|
||||
"miniCalendar": "迷你日曆"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,7 +211,11 @@ export default async function getEvents({
|
||||
await pb.getFullList
|
||||
.collection('movies__entries')
|
||||
.filter([
|
||||
{ field: 'theatre_showtime', operator: '>=', value: startMoment },
|
||||
{
|
||||
field: 'theatre_showtime',
|
||||
operator: '>=',
|
||||
value: startMoment
|
||||
},
|
||||
{ field: 'theatre_showtime', operator: '<=', value: endMoment }
|
||||
])
|
||||
.execute()
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
"type": "module"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
|
||||
@@ -1,50 +1,36 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": [
|
||||
"ES2020",
|
||||
"DOM",
|
||||
"DOM.Iterable",
|
||||
"ES2024.Object"
|
||||
],
|
||||
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": [
|
||||
"./src/index"
|
||||
],
|
||||
"@/*": [
|
||||
"./src/*"
|
||||
],
|
||||
"@server/*": [
|
||||
"../../../server/src/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable", "ES2024.Object"],
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": ["./src/index"],
|
||||
"@/*": ["./src/*"],
|
||||
"@server/*": ["../../../server/src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["./src/**/*", "./manifest.ts"],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"title": "CFOP Algorithms",
|
||||
"description": "Learn speedcubing, all in one place"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"title": "Algoritma CFOP",
|
||||
"description": "Belajar speedcubing, semua dalam satu tempat"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"title": "CFOP 算法",
|
||||
"description": "学习速拧魔方,一站式服务"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"title": "CFOP 演算法",
|
||||
"description": "學習速解魔方,一站式服務"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,50 +1,36 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": [
|
||||
"ES2020",
|
||||
"DOM",
|
||||
"DOM.Iterable",
|
||||
"ES2024.Object"
|
||||
],
|
||||
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": [
|
||||
"./src/index"
|
||||
],
|
||||
"@/*": [
|
||||
"./src/*"
|
||||
],
|
||||
"@server/*": [
|
||||
"../../../server/src/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable", "ES2024.Object"],
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": ["./src/index"],
|
||||
"@/*": ["./src/*"],
|
||||
"@server/*": ["../../../server/src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["./src/**/*", "./manifest.ts"],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
"items": {
|
||||
"flight": "Flight"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
"items": {
|
||||
"flight": "Penerbangan"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
"items": {
|
||||
"flight": "航班"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
"items": {
|
||||
"flight": "航班"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
"type": "module"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
|
||||
@@ -1,50 +1,36 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": [
|
||||
"ES2020",
|
||||
"DOM",
|
||||
"DOM.Iterable",
|
||||
"ES2024.Object"
|
||||
],
|
||||
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": [
|
||||
"./src/index"
|
||||
],
|
||||
"@/*": [
|
||||
"./src/*"
|
||||
],
|
||||
"@server/*": [
|
||||
"../../../server/src/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable", "ES2024.Object"],
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": ["./src/index"],
|
||||
"@/*": ["./src/*"],
|
||||
"@server/*": ["../../../server/src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["./src/**/*", "./manifest.ts"],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -27,4 +27,4 @@
|
||||
"hours": "Hours",
|
||||
"noTime": "No Time Recorded"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,4 +27,4 @@
|
||||
"hours": "Jam",
|
||||
"noTime": "Tiada Masa Direkod"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,4 +27,4 @@
|
||||
"hours": "小时",
|
||||
"noTime": "没有记录时间"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,4 +27,4 @@
|
||||
"hours": "小時",
|
||||
"noTime": "未記錄時間"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
"type": "module"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
|
||||
@@ -1,50 +1,36 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": [
|
||||
"ES2020",
|
||||
"DOM",
|
||||
"DOM.Iterable",
|
||||
"ES2024.Object"
|
||||
],
|
||||
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": [
|
||||
"./src/index"
|
||||
],
|
||||
"@/*": [
|
||||
"./src/*"
|
||||
],
|
||||
"@server/*": [
|
||||
"../../../server/src/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable", "ES2024.Object"],
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": ["./src/index"],
|
||||
"@/*": ["./src/*"],
|
||||
"@server/*": ["../../../server/src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["./src/**/*", "./manifest.ts"],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -38,7 +38,9 @@ function FolderContextMenu({
|
||||
})
|
||||
.mutationOptions({
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ['ideaBox', 'folders'] })
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: ['ideaBox', 'folders']
|
||||
})
|
||||
},
|
||||
onError: error => {
|
||||
toast.error(`Failed to delete folder: ${error.message}`)
|
||||
|
||||
@@ -47,7 +47,9 @@ function IdeaAndFolderList() {
|
||||
children: 'new',
|
||||
onClick: handleIdeaCreation,
|
||||
icon: 'tabler:plus',
|
||||
tProps: { item: t('items.idea') }
|
||||
tProps: {
|
||||
item: t('items.idea')
|
||||
}
|
||||
}}
|
||||
icon="tabler:bulb-off"
|
||||
name="idea"
|
||||
|
||||
@@ -28,7 +28,9 @@ function ModifyFolderModal({
|
||||
})
|
||||
).mutationOptions({
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ['ideaBox', 'folders'] })
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: ['ideaBox', 'folders']
|
||||
})
|
||||
},
|
||||
onError: error => {
|
||||
toast.error(`Failed to ${type} folder: ${error.message}`)
|
||||
|
||||
@@ -84,8 +84,16 @@ function ModifyIdeaModal({
|
||||
text: t('entryType.text'),
|
||||
icon: 'tabler:text-size'
|
||||
},
|
||||
{ value: 'link', text: t('entryType.link'), icon: 'tabler:link' },
|
||||
{ value: 'image', text: t('entryType.image'), icon: 'tabler:photo' }
|
||||
{
|
||||
value: 'link',
|
||||
text: t('entryType.link'),
|
||||
icon: 'tabler:link'
|
||||
},
|
||||
{
|
||||
value: 'image',
|
||||
text: t('entryType.image'),
|
||||
icon: 'tabler:photo'
|
||||
}
|
||||
],
|
||||
disabled: type === 'update'
|
||||
},
|
||||
|
||||
@@ -1,50 +1,36 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": [
|
||||
"ES2020",
|
||||
"DOM",
|
||||
"DOM.Iterable",
|
||||
"ES2024.Object"
|
||||
],
|
||||
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": [
|
||||
"./src/index"
|
||||
],
|
||||
"@/*": [
|
||||
"./src/*"
|
||||
],
|
||||
"@server/*": [
|
||||
"../../../server/src/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable", "ES2024.Object"],
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": ["./src/index"],
|
||||
"@/*": ["./src/*"],
|
||||
"@server/*": ["../../../server/src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["./src/**/*", "./manifest.ts"],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -89,4 +89,4 @@
|
||||
"folder": "Folder",
|
||||
"ideaInFolder": "Idea in Folder"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,4 +89,4 @@
|
||||
"folder": "Folder",
|
||||
"ideaInFolder": "Idea dalam Folder"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,4 +89,4 @@
|
||||
"folder": "资料夹",
|
||||
"ideaInFolder": "资料夹中的创意"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,4 +89,4 @@
|
||||
"folder": "資料夾",
|
||||
"ideaInFolder": "資料夾中的創意"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
"type": "module"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
|
||||
@@ -56,11 +56,15 @@ function AudioType({
|
||||
setCurrentTime(0)
|
||||
setTotalTime(0)
|
||||
|
||||
const stream = await navigator.mediaDevices.getUserMedia({ audio: true })
|
||||
const stream = await navigator.mediaDevices.getUserMedia({
|
||||
audio: true
|
||||
})
|
||||
|
||||
streamRef.current = stream
|
||||
|
||||
const mediaRecorder = new MediaRecorder(stream, { mimeType: 'audio/webm' })
|
||||
const mediaRecorder = new MediaRecorder(stream, {
|
||||
mimeType: 'audio/webm'
|
||||
})
|
||||
|
||||
mediaRecorderRef.current = mediaRecorder
|
||||
audioChunksRef.current = []
|
||||
|
||||
@@ -1,50 +1,36 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": [
|
||||
"ES2020",
|
||||
"DOM",
|
||||
"DOM.Iterable",
|
||||
"ES2024.Object"
|
||||
],
|
||||
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": [
|
||||
"./src/index"
|
||||
],
|
||||
"@/*": [
|
||||
"./src/*"
|
||||
],
|
||||
"@server/*": [
|
||||
"../../../server/src/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable", "ES2024.Object"],
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": ["./src/index"],
|
||||
"@/*": ["./src/*"],
|
||||
"@server/*": ["../../../server/src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["./src/**/*", "./manifest.ts"],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -28,4 +28,4 @@
|
||||
"text": "Text",
|
||||
"photos": "Photos"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,4 +28,4 @@
|
||||
"text": "Teks",
|
||||
"photos": "Gambar"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,4 +28,4 @@
|
||||
"text": "文本",
|
||||
"photos": "照片"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,4 +28,4 @@
|
||||
"text": "文本",
|
||||
"photos": "照片"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
"type": "module"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
|
||||
@@ -1,50 +1,36 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": [
|
||||
"ES2020",
|
||||
"DOM",
|
||||
"DOM.Iterable",
|
||||
"ES2024.Object"
|
||||
],
|
||||
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": [
|
||||
"./src/index"
|
||||
],
|
||||
"@/*": [
|
||||
"./src/*"
|
||||
],
|
||||
"@server/*": [
|
||||
"../../../server/src/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable", "ES2024.Object"],
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": ["./src/index"],
|
||||
"@/*": ["./src/*"],
|
||||
"@server/*": ["../../../server/src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["./src/**/*", "./manifest.ts"],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -56,4 +56,4 @@
|
||||
"misc": {
|
||||
"watched": "Watched on {{date}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,4 +56,4 @@
|
||||
"misc": {
|
||||
"watched": "Ditonton pada {{date}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,4 +56,4 @@
|
||||
"misc": {
|
||||
"watched": "观看于{{date}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,4 +56,4 @@
|
||||
"misc": {
|
||||
"watched": "觀看於{{date}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
"type": "module"
|
||||
}
|
||||
|
||||
@@ -18,7 +18,10 @@ const moviesSchemas = {
|
||||
theatre_seat: z.string(),
|
||||
theatre_showtime: z.string(),
|
||||
theatre_location: z.string(),
|
||||
theatre_location_coords: z.object({ lat: z.number(), lon: z.number() }),
|
||||
theatre_location_coords: z.object({
|
||||
lat: z.number(),
|
||||
lon: z.number()
|
||||
}),
|
||||
theatre_number: z.string(),
|
||||
is_watched: z.boolean()
|
||||
}),
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
|
||||
@@ -1,50 +1,36 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": [
|
||||
"ES2020",
|
||||
"DOM",
|
||||
"DOM.Iterable",
|
||||
"ES2024.Object"
|
||||
],
|
||||
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": [
|
||||
"./src/index"
|
||||
],
|
||||
"@/*": [
|
||||
"./src/*"
|
||||
],
|
||||
"@server/*": [
|
||||
"../../../server/src/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable", "ES2024.Object"],
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": ["./src/index"],
|
||||
"@/*": ["./src/*"],
|
||||
"@server/*": ["../../../server/src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["./src/**/*", "./manifest.ts"],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
"type": "module"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
|
||||
@@ -77,7 +77,9 @@ function ContentContainer({ masterPassword }: { masterPassword: string }) {
|
||||
)
|
||||
} catch {
|
||||
toast.error(t('error.pin'))
|
||||
queryClient.invalidateQueries({ queryKey: ['passwords', 'entries'] })
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: ['passwords', 'entries']
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,9 @@ function PasswordEntryItem({
|
||||
})
|
||||
.mutationOptions({
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ['passwords', 'entries'] })
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: ['passwords', 'entries']
|
||||
})
|
||||
},
|
||||
onError: () => {
|
||||
toast.error('Failed to delete password. Please try again.')
|
||||
|
||||
@@ -31,7 +31,9 @@ function ModifyPasswordModal({
|
||||
})
|
||||
).mutationOptions({
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ['passwords', 'entries'] })
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: ['passwords', 'entries']
|
||||
})
|
||||
},
|
||||
onError: () => {
|
||||
toast.error('Failed to modify password entry')
|
||||
|
||||
@@ -1,50 +1,36 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": [
|
||||
"ES2020",
|
||||
"DOM",
|
||||
"DOM.Iterable",
|
||||
"ES2024.Object"
|
||||
],
|
||||
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": [
|
||||
"./src/index"
|
||||
],
|
||||
"@/*": [
|
||||
"./src/*"
|
||||
],
|
||||
"@server/*": [
|
||||
"../../../server/src/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable", "ES2024.Object"],
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": ["./src/index"],
|
||||
"@/*": ["./src/*"],
|
||||
"@server/*": ["../../../server/src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["./src/**/*", "./manifest.ts"],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -35,4 +35,4 @@
|
||||
"showPassword": "Show Password",
|
||||
"hidePassword": "Hide Password"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,4 +35,4 @@
|
||||
"showPassword": "Tunjukkan Kata Laluan",
|
||||
"hidePassword": "Sembunyikan Kata Laluan"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,4 +35,4 @@
|
||||
"showPassword": "显示密码",
|
||||
"hidePassword": "隐藏密码"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,4 +35,4 @@
|
||||
"showPassword": "顯示密碼",
|
||||
"hidePassword": "隱藏密碼"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
"type": "module"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
|
||||
@@ -1,50 +1,36 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": [
|
||||
"ES2020",
|
||||
"DOM",
|
||||
"DOM.Iterable",
|
||||
"ES2024.Object"
|
||||
],
|
||||
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": [
|
||||
"./src/index"
|
||||
],
|
||||
"@/*": [
|
||||
"./src/*"
|
||||
],
|
||||
"@server/*": [
|
||||
"../../../server/src/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
"compilerOptions": {
|
||||
// JSX and Language Settings
|
||||
"jsx": "react-jsx",
|
||||
"target": "ES2020",
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable", "ES2024.Object"],
|
||||
// Module Resolution
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
// Build and Output
|
||||
"composite": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
// Type Checking
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"useDefineForClassFields": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
// Path Mapping
|
||||
"paths": {
|
||||
"@": ["./src/index"],
|
||||
"@/*": ["./src/*"],
|
||||
"@server/*": ["../../../server/src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["./src/**/*", "./manifest.ts"],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../../server/tsconfig.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
"type": "module"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
"extends": "../../../server/tsconfig.json"
|
||||
}
|
||||
|
||||
@@ -86,7 +86,9 @@ function Header({
|
||||
if (data.status === 'completed') {
|
||||
toast.done(toastId.current!)
|
||||
toastId.current = null
|
||||
queryClient.invalidateQueries({ queryKey: ['scoresLibrary'] })
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: ['scoresLibrary']
|
||||
})
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
@@ -36,7 +36,9 @@ function SidebarTypeItem({
|
||||
const deleteMutation = useMutation(
|
||||
forgeAPI.scoresLibrary.types.remove.input({ id: data.id }).mutationOptions({
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ['scoresLibrary'] })
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: ['scoresLibrary']
|
||||
})
|
||||
},
|
||||
onError: () => {
|
||||
toast.error('Failed to delete type')
|
||||
|
||||
@@ -30,7 +30,9 @@ function SidebarCollectionItem({
|
||||
.input({ id: data.id })
|
||||
.mutationOptions({
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ['scoresLibrary'] })
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: ['scoresLibrary']
|
||||
})
|
||||
},
|
||||
onError: () => {
|
||||
toast.error('Failed to delete collection')
|
||||
|
||||
@@ -21,7 +21,9 @@ function ModifyEntryModal({
|
||||
.input({ id: initialData.id })
|
||||
.mutationOptions({
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ['scoresLibrary'] })
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: ['scoresLibrary']
|
||||
})
|
||||
onClose()
|
||||
}
|
||||
})
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user