Skip to content

Commit e746ef6

Browse files
committed
feat(convex): add bookmarks, contents and user devices schemas, migrate lucide-react to hugeicons
Add new database schemas for bookmarks, content tracking and user device management. Includes: - Bookmarks module with collections and ordering - Content views tracking for analytics - User devices tracking for cross-device continuity - README documentation for each module's flows and edge cases
1 parent 8578a43 commit e746ef6

191 files changed

Lines changed: 3493 additions & 1944 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/rich-baths-remain.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
"@repo/design-system": minor
3+
"@repo/internationalization": patch
4+
"@repo/next-config": patch
5+
"@repo/contents": patch
6+
"@repo/backend": patch
7+
"@repo/ai": patch
8+
"mcp": patch
9+
"www": patch
10+
---
11+
12+
Migrate lucide react to hugeicons

.trae/rules/auth_and_user.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
---
2+
alwaysApply: false
3+
---
14
# User & Authentication Rules
25

36
## Authentication Standards

.trae/rules/content_creation.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
---
2+
alwaysApply: false
3+
---
14
# Content Creation Guidelines
25

36
**Language**: Indonesian (Bahasa Indonesia) is the primary language for content.

.trae/rules/contributing.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
---
2+
alwaysApply: false
3+
---
14
# Contributing to Nakafa
25

36
Follow these steps to contribute:

.trae/rules/exercise_creation.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
---
2+
alwaysApply: false
3+
---
14
# Exercise Creation Guidelines
25

36
When creating exercises, you are converting visual content (images of questions, choices, and explanations) into structured MDX and TypeScript code.

.trae/rules/marketing.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
---
2+
alwaysApply: false
3+
---
14
# Marketing Guidelines
25

36
## LinkedIn Marketing Strategy

.vscode/settings.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"geospatial",
2828
"ghibli",
2929
"groq",
30+
"Hugeicons",
3031
"jsonrepair",
3132
"kamu",
3233
"katex",

apps/mcp/next.config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ import { env } from "@/env";
44

55
let nextConfig: NextConfig = {
66
serverExternalPackages: ["express"],
7+
experimental: {
8+
turbopackFileSystemCacheForBuild: true,
9+
turbopackFileSystemCacheForDev: true,
10+
},
711
};
812

913
if (env.ANALYZE === "true") {

apps/www/app/[locale]/(study)/(main)/(contents)/exercises/[category]/[type]/[material]/[...slug]/actions.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
"use client";
22

3+
import { ArrowDown01Icon } from "@hugeicons/core-free-icons";
34
import { Button } from "@repo/design-system/components/ui/button";
5+
import { HugeIcons } from "@repo/design-system/components/ui/huge-icons";
46
import { cn } from "@repo/design-system/lib/utils";
5-
import { ChevronDownIcon } from "lucide-react";
67
import { useTranslations } from "next-intl";
78
import { useExercise } from "@/lib/context/use-exercise";
89

@@ -21,11 +22,12 @@ export function ExerciseAnswerAction({ exerciseNumber }: Props) {
2122
<div className="flex items-center gap-2">
2223
<Button onClick={() => toggleAnswer(exerciseNumber)} variant="outline">
2324
{t("explanation")}
24-
<ChevronDownIcon
25+
<HugeIcons
2526
className={cn(
2627
"transition-transform ease-out",
2728
!!showAnswer && "rotate-180"
2829
)}
30+
icon={ArrowDown01Icon}
2931
/>
3032
</Button>
3133
</div>

apps/www/app/[locale]/(study)/(main)/(contents)/quran/[surah]/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
import { AllahIcon } from "@hugeicons/core-free-icons";
12
import { getSurah, getSurahName } from "@repo/contents/_lib/quran";
23
import { cn, slugify } from "@repo/design-system/lib/utils";
3-
import { MoonStarIcon } from "lucide-react";
44
import type { Metadata } from "next";
55
import { notFound } from "next/navigation";
66
import { type Locale, useTranslations } from "next-intl";
@@ -145,7 +145,7 @@ function PageContent({ locale, surah }: { locale: Locale; surah: string }) {
145145
<LayoutMaterialContent showAskButton>
146146
<LayoutMaterialHeader
147147
description={translation}
148-
icon={MoonStarIcon}
148+
icon={AllahIcon}
149149
link={{
150150
href: "/quran",
151151
label: t("quran"),

0 commit comments

Comments
 (0)