Skip to content

Commit 48f09e7

Browse files
committed
removed connect (redux) usage
1 parent adb2e7a commit 48f09e7

58 files changed

Lines changed: 333 additions & 462 deletions

Some content is hidden

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

apps/web/app/(with-contexts)/(with-layout)/home-page-layout.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ import {
88
TypefacesContext,
99
ThemeContext,
1010
} from "@components/contexts";
11-
import { BaseLayout } from "@components/public/base-layout";
11+
import BaseLayout from "@components/public/base-layout";
1212
import { Profile } from "@courselit/common-models";
1313
import { getFullSiteSetup } from "@ui-lib/utils";
1414
import { useContext } from "react";
15-
import { CodeInjector } from "@components/public/code-injector";
15+
import CodeInjector from "@components/public/code-injector";
1616

1717
export default function HomepageLayout({
1818
children,
@@ -32,9 +32,7 @@ export default function HomepageLayout({
3232
<BaseLayout
3333
layout={siteInfo!.page.layout}
3434
title={siteInfo!.page.title || ""}
35-
typefaces={typefaces}
3635
siteInfo={siteinfo}
37-
dispatch={() => {}}
3836
theme={theme}
3937
state={{
4038
config: config,

apps/web/app/(with-contexts)/(with-layout)/p/[id]/client-side-page.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
TypefacesContext,
88
} from "@components/contexts";
99
import { ProfileContext } from "@components/contexts";
10-
import { BaseLayout } from "@components/public/base-layout";
10+
import BaseLayout from "@components/public/base-layout";
1111
import { Profile } from "@courselit/common-models";
1212

1313
export default function ClientSidePage({
@@ -40,16 +40,14 @@ export default function ClientSidePage({
4040
layout={layoutWithoutHeaderFooter}
4141
title={page.title || page.pageData?.title}
4242
pageData={page.pageData}
43-
typefaces={typefaces}
4443
siteInfo={siteinfo}
45-
dispatch={() => {}}
4644
theme={theme}
4745
state={{
4846
config: config,
4947
siteinfo,
5048
address,
5149
profile: profile as Profile,
52-
auth: profile.email
50+
auth: profile?.email
5351
? {
5452
guest: false,
5553
checked: true,

apps/web/app/(with-contexts)/course/[slug]/[id]/page.tsx

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ import { isEnrolled } from "@ui-lib/utils";
55
import { ArrowRight } from "@courselit/icons";
66
import { COURSE_PROGRESS_START, ENROLL_BUTTON_TEXT } from "@ui-config/strings";
77
import { checkPermission } from "@courselit/utils";
8-
import { Course, Profile, UIConstants } from "@courselit/common-models";
9-
import { Article } from "@components/public/article";
8+
import { Profile, UIConstants } from "@courselit/common-models";
109
import {
1110
Link,
1211
Button2,
1312
getSymbolFromCurrency,
13+
TextRenderer,
14+
TextEditorEmptyDoc,
15+
Image,
1416
} from "@courselit/components-library";
1517
import {
1618
AddressContext,
@@ -50,7 +52,6 @@ export default function ProductPage({
5052
return (
5153
<div className="flex flex-col pb-[100px] lg:max-w-[40rem] xl:max-w-[48rem] mx-auto">
5254
<h1 className="text-4xl font-semibold mb-8">{product.title}</h1>
53-
{JSON.stringify(profile)}
5455
{!isEnrolled(product.courseId, profile as Profile) &&
5556
checkPermission(profile.permissions ?? [], [
5657
permissions.enrollInCourse,
@@ -74,12 +75,28 @@ export default function ProductPage({
7475
</div>
7576
</div>
7677
)}
77-
<Article
78-
course={product as unknown as Course}
79-
options={{ hideTitle: true }}
80-
profile={profile as Profile}
81-
siteInfo={siteInfo}
82-
/>
78+
{product.featuredImage && (
79+
<div className="flex justify-center">
80+
<div className="mt-4 mb-8 w-full md:max-w-screen-md">
81+
<Image
82+
alt={product.featuredImage.caption}
83+
src={product.featuredImage.file!}
84+
loading="eager"
85+
sizes="50vw"
86+
/>
87+
</div>
88+
</div>
89+
)}
90+
<div className="overflow-hidden min-h-[360px]">
91+
<TextRenderer
92+
json={
93+
product.description
94+
? JSON.parse(product.description)
95+
: TextEditorEmptyDoc
96+
}
97+
showTableOfContent={true}
98+
/>
99+
</div>
83100
{isEnrolled(product.courseId, profile as Profile) && (
84101
<div className="self-end">
85102
<Link

apps/web/app/(with-contexts)/dashboard/(sidebar)/blog/[id]/page.tsx

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
"use client";
22

33
import useCourse from "@components/admin/blogs/editor/course-hook";
4-
import { Details } from "@components/admin/blogs/editor/details";
5-
import { Publish } from "@components/admin/blogs/editor/publish";
4+
import Details from "@components/admin/blogs/editor/details";
5+
import Publish from "@components/admin/blogs/editor/publish";
66
import { deleteProduct } from "@components/admin/blogs/helpers";
77
import DashboardContent from "@components/admin/dashboard-content";
8-
import { AddressContext, ProfileContext } from "@components/contexts";
8+
import { AddressContext } from "@components/contexts";
99
import { UIConstants } from "@courselit/common-models";
1010
import {
1111
Link,
@@ -26,7 +26,6 @@ import {
2626
PRODUCT_TABLE_CONTEXT_MENU_DELETE_PRODUCT,
2727
} from "@ui-config/strings";
2828
import { truncate } from "@ui-lib/utils";
29-
import { Profile } from "next-auth";
3029
import { useRouter, useSearchParams } from "next/navigation";
3130
import { useContext, useState } from "react";
3231

@@ -40,7 +39,6 @@ export default function Page({ params }: { params: { id: string } }) {
4039
const searchParams = useSearchParams();
4140
const [tab, setTab] = useState(searchParams?.get("tab") || "Details");
4241
const address = useContext(AddressContext);
43-
const { profile } = useContext(ProfileContext);
4442
const course = useCourse(id, address);
4543
const router = useRouter();
4644
const { toast } = useToast();
@@ -105,18 +103,10 @@ export default function Page({ params }: { params: { id: string } }) {
105103
onChange={setTab}
106104
>
107105
<div className="pt-4">
108-
<Details
109-
id={id as string}
110-
address={address}
111-
profile={profile as Profile}
112-
/>
106+
<Details id={id as string} />
113107
</div>
114108
<div className="pt-4">
115-
<Publish
116-
id={id}
117-
address={address}
118-
loading={false}
119-
/>
109+
<Publish id={id} />
120110
</div>
121111
</Tabbs>
122112
</>

apps/web/app/(with-contexts)/dashboard/(sidebar)/blog/new/page.tsx

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

3-
import { NewBlog } from "@components/admin/blogs/new-blog";
3+
import NewBlog from "@components/admin/blogs/new-blog";
44
import DashboardContent from "@components/admin/dashboard-content";
55
import { AddressContext } from "@components/contexts";
66
import { UIConstants } from "@courselit/common-models";
@@ -23,7 +23,7 @@ export default function Page() {
2323
UIConstants.permissions.manageCourse,
2424
]}
2525
>
26-
<NewBlog address={address} networkAction={false} />
26+
<NewBlog />
2727
</DashboardContent>
2828
);
2929
}
Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
"use client";
22

3-
import { Index as Blogs } from "@components/admin/blogs";
3+
import Blogs from "@components/admin/blogs";
44
import DashboardContent from "@components/admin/dashboard-content";
55
import LoadingScreen from "@components/admin/loading-screen";
66
import {
7-
AddressContext,
87
ProfileContext,
9-
SiteInfoContext,
108
} from "@components/contexts";
119
import { UIConstants } from "@courselit/common-models";
1210
import { checkPermission } from "@courselit/utils";
@@ -17,12 +15,11 @@ const { permissions } = UIConstants;
1715
const breadcrumbs = [{ label: MANAGE_BLOG_PAGE_HEADING, href: "#" }];
1816

1917
export default function Page() {
20-
const address = useContext(AddressContext);
2118
const { profile } = useContext(ProfileContext);
22-
const siteinfo = useContext(SiteInfoContext);
2319

2420
if (
25-
!checkPermission(profile.permissions!, [
21+
!profile ||
22+
!checkPermission(profile?.permissions!, [
2623
permissions.manageAnyCourse,
2724
permissions.manageCourse,
2825
])
@@ -32,7 +29,7 @@ export default function Page() {
3229

3330
return (
3431
<DashboardContent breadcrumbs={breadcrumbs}>
35-
<Blogs address={address} loading={false} siteinfo={siteinfo} />
32+
<Blogs />
3633
</DashboardContent>
3734
);
3835
}

apps/web/app/(with-contexts)/dashboard/(sidebar)/overview/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import dynamic from "next/dynamic";
1919
import DashboardContent from "@components/admin/dashboard-content";
2020
const Todo = dynamic(() =>
2121
import("@components/admin/dashboard/to-do").then((mod) => ({
22-
default: mod.Todo,
22+
default: mod.default,
2323
})),
2424
);
2525
const LoadingScreen = dynamic(() => import("@components/admin/loading-screen"));
@@ -134,7 +134,7 @@ export default function Page() {
134134
))}
135135
</SelectContent>
136136
</Select> */}
137-
<Todo siteinfo={siteInfo} />
137+
<Todo />
138138
<div className="grid gap-4 md:grid-cols-2 lg:grid-cols-2">
139139
<MetricCard
140140
title="Sales"

apps/web/app/(with-contexts)/dashboard/(sidebar)/pages/page.tsx

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,31 @@
22

33
import DashboardContent from "@components/admin/dashboard-content";
44
import LoadingScreen from "@components/admin/loading-screen";
5-
import { Pages } from "@components/admin/pages";
6-
import { AddressContext, ProfileContext } from "@components/contexts";
5+
import { ProfileContext } from "@components/contexts";
76
import { UIConstants } from "@courselit/common-models";
87
import { checkPermission } from "@courselit/utils";
98
import { MANAGE_PAGES_PAGE_HEADING } from "@ui-config/strings";
9+
import dynamic from "next/dynamic";
1010
import { useContext } from "react";
1111
const { permissions } = UIConstants;
1212

13+
const Pages = dynamic(() => import("@components/admin/pages"));
14+
1315
const breadcrumbs = [{ label: MANAGE_PAGES_PAGE_HEADING, href: "#" }];
1416

1517
export default function Page() {
16-
const address = useContext(AddressContext);
1718
const { profile } = useContext(ProfileContext);
1819

19-
if (!checkPermission(profile.permissions!, [permissions.manageSite])) {
20+
if (
21+
!profile ||
22+
!checkPermission(profile.permissions!, [permissions.manageSite])
23+
) {
2024
return <LoadingScreen />;
2125
}
2226

2327
return (
2428
<DashboardContent breadcrumbs={breadcrumbs}>
25-
<Pages address={address} loading={false} dispatch={() => {}} />
29+
<Pages />
2630
</DashboardContent>
2731
);
2832
}

apps/web/app/(with-contexts)/dashboard/(sidebar)/product/[id]/content/section/[section]/lesson/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ import {
6363
MIMETYPE_PDF,
6464
} from "@ui-config/constants";
6565
import { FetchBuilder } from "@courselit/utils";
66-
import { QuizBuilder } from "@components/admin/products/editor/content/quiz-builder";
66+
import { QuizBuilder } from "@components/admin/products/quiz-builder";
6767
import { isTextEditorNonEmpty, truncate } from "@ui-lib/utils";
6868
import { Skeleton } from "@/components/ui/skeleton";
6969
import { Separator } from "@components/ui/separator";

apps/web/app/(with-contexts)/dashboard/(sidebar)/product/[id]/customer/new/page.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ import {
99
} from "@ui-config/strings";
1010
import { truncate } from "@ui-lib/utils";
1111
import { useContext } from "react";
12-
import useProduct from "../../../../../../../../hooks/use-product";
12+
import useProduct from "@/hooks/use-product";
1313
import { useParams } from "next/navigation";
1414

1515
export default function Page() {
1616
const params = useParams();
17-
const productId = params.id as string;
17+
const productId = params?.id as string;
1818
const address = useContext(AddressContext);
19-
const { product } = useProduct(productId, address);
19+
const { product } = useProduct(productId);
2020
const breadcrumbs = [
2121
{ label: MANAGE_COURSES_PAGE_HEADING, href: "/dashboard/products" },
2222
{

0 commit comments

Comments
 (0)