Skip to content

Commit 70f9922

Browse files
authored
Merge pull request #29 from database-playground/keyword-uppercase
more hints and formatter improvement
2 parents 59489f7 + 65e3566 commit 70f9922

File tree

8 files changed

+763
-789
lines changed

8 files changed

+763
-789
lines changed

app/(app)/challenges/[id]/_components/sql-editor/editor.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export default function SQLEditor({
3232
const currentCode = codeMirrorRef.current?.view?.state.doc.toString() ?? "";
3333
const formattedCode = formatDialect(currentCode, {
3434
dialect: formatterSqlite,
35+
keywordCase: "upper",
3536
});
3637

3738
codeMirrorRef.current?.view?.dispatch({

app/global-error.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ export default function GlobalError({ error }: GlobalErrorProps) {
110110
<div
111111
className={`
112112
flex min-h-svh flex-col items-center justify-center gap-6
113-
bg-gradient-to-br from-red-50 via-white to-red-100 p-6
113+
bg-linear-to-br from-red-50 via-white to-red-100 p-6
114114
md:p-10
115115
`}
116116
>

app/login/_components/do-you-know/index.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,15 @@ export async function getDoYouKnow() {
2929
<p key="do-you-knows-wrong-no-penalty">
3030
寫錯不會扣點數,錯誤次數也不會列入排名<br />可以盡量在平台上練習!
3131
</p>,
32+
<p key="do-you-knows-chat-with-ai-assistant">
33+
寫題目卡關了?可以試試看點右下角的「AI 助手」<br />讓 AI 助教幫你解答
34+
</p>,
35+
<p key="do-you-knows-discord-community">
36+
歡迎加入練功坊的 Discord 社群,<br />與開發者和其他使用者直接交流!
37+
</p>,
38+
<p key="do-you-knows-github-contribution">
39+
向 GitHub 貢獻程式碼,每次都能<br />直接獲得 200 - 700 點不等的點數!
40+
</p>,
3241
];
3342

3443
const randomKnow = knowsList[Math.floor(Math.random() * knowsList.length)];

app/login/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ export default async function LoginPage() {
1919
return (
2020
<div
2121
className={`
22-
flex min-h-svh items-center justify-center bg-gradient-to-br
23-
from-blue-100 via-white to-blue-50 px-8 py-6
22+
flex min-h-svh items-center justify-center bg-linear-to-br from-blue-100
23+
via-white to-blue-50 px-8 py-6
2424
lg:px-14 lg:py-8
2525
`}
2626
>

components/forbidden-layout/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export default async function ForbiddenLayout() {
1212
<div
1313
className={`
1414
flex min-h-svh flex-col items-center justify-center gap-6
15-
bg-gradient-to-br from-red-50 via-white to-red-100 p-6
15+
bg-linear-to-br from-red-50 via-white to-red-100 p-6
1616
md:p-10
1717
`}
1818
>

components/question/question-card.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { type FragmentType, graphql, readFragment } from "@/gql";
33
import { getQuestionSolvedStatus } from "@/lib/solved-status";
44
import { SwordIcon } from "lucide-react";
55
import Link from "next/link";
6+
import { Remark } from "react-remark";
67
import DifficultyBadge from "./difficulty-badge";
78
import SolvedStatusBadge from "./solved-status-badge";
89

@@ -33,7 +34,9 @@ export default function QuestionCard({
3334
<div className="flex-1 space-y-3 bg-white p-4">
3435
<div>
3536
<h2 className="font-bold tracking-wider">{question.title}</h2>
36-
<p className="tracking-wide">{descriptionFirstLine}</p>
37+
<p className="tracking-wide">
38+
<Remark>{descriptionFirstLine}</Remark>
39+
</p>
3740
</div>
3841
<div className="flex flex-wrap gap-1">
3942
<SolvedStatusBadge solvedStatus={solvedStatus} />

package.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"format:check": "dprint check"
1515
},
1616
"dependencies": {
17-
"@ai-sdk/anthropic": "^2.0.33",
17+
"@ai-sdk/anthropic": "^2.0.34",
1818
"@ai-sdk/react": "^2.0.76",
1919
"@apollo/client": "4.0.7",
2020
"@apollo/client-integration-nextjs": "^0.14.0",
@@ -49,13 +49,13 @@
4949
"foxact": "^0.2.49",
5050
"graphql": "^16.11.0",
5151
"lucide-react": "^0.546.0",
52-
"next": "16.0.0-canary.14",
52+
"next": "16.0.0-canary.15",
5353
"next-themes": "^0.4.6",
54-
"posthog-js": "^1.276.0",
54+
"posthog-js": "^1.277.0",
5555
"posthog-node": "^5.10.0",
56-
"react": "19.3.0-canary-1324e1bb-20251016",
56+
"react": "19.3.0-canary-2bcbf254-20251020",
5757
"react-codemirror-merge": "^4.25.2",
58-
"react-dom": "19.3.0-canary-1324e1bb-20251016",
58+
"react-dom": "19.3.0-canary-2bcbf254-20251020",
5959
"react-hook-form": "^7.65.0",
6060
"react-remark": "^2.1.0",
6161
"remark": "^15.0.1",
@@ -74,16 +74,16 @@
7474
"@graphql-codegen/schema-ast": "^5.0.0",
7575
"@graphql-typed-document-node/core": "^3.2.0",
7676
"@parcel/watcher": "^2.5.1",
77-
"@tailwindcss/postcss": "^4.1.14",
78-
"@types/node": "^24.8.1",
77+
"@tailwindcss/postcss": "^4.1.15",
78+
"@types/node": "^24.9.0",
7979
"@types/react": "^19.2.2",
8080
"@types/react-dom": "^19.2.2",
81-
"@typescript-eslint/parser": "^8.46.1",
81+
"@typescript-eslint/parser": "^8.46.2",
8282
"dprint": "^0.50.2",
8383
"eslint": "^9.38.0",
84-
"eslint-config-next": "16.0.0-canary.14",
84+
"eslint-config-next": "16.0.0-canary.15",
8585
"eslint-plugin-better-tailwindcss": "^3.7.10",
86-
"tailwindcss": "^4.1.14",
86+
"tailwindcss": "^4.1.15",
8787
"tw-animate-css": "^1.4.0",
8888
"typescript": "^5.9.3"
8989
}

0 commit comments

Comments
 (0)