Skip to content

Commit

Permalink
Merge branch 'i18n' into fix/google-refresh-token
Browse files Browse the repository at this point in the history
  • Loading branch information
hubcio2115 committed Sep 29, 2024
2 parents 7a85b71 + fe37f3b commit 6c5e0d4
Show file tree
Hide file tree
Showing 36 changed files with 1,434 additions and 248 deletions.
2 changes: 1 addition & 1 deletion apps/web/src/app/[lang]/dashboard/[name]/overview/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ export default async function DashboardOverviewPage({
<div className="mx-auto flex flex-col flex-1 items-center md:px-2 container pb-10 gap-8">
<SearchNavigation orgName={params.name} lang={params.lang} />

<ProjectPagination organizationName={params.name} />
<ProjectPagination lang={params.lang} organizationName={params.name} />

<div className="grid grid-cols-1 gap-5 lg:grid-cols-2 lg:grid-rows-6 2xl:w-[1300px] 2xl:grid-cols-3 2xl:grid-rows-4 flex-1">
<Suspense fallback={<ProjectsSkeleton />}>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,11 @@ export default async function ProjectPage({ params }: ProjectPageProps) {
return redirect("/404");
}

const [languages, languagesErr] = await getYoutubeSupportedLanguages(
params.lang,
);
const [categories, categoriesErr] = await getYoutubeCategories(params.lang);
const [[languages, languagesErr], [categories, categoriesErr]] =
await Promise.all([
getYoutubeSupportedLanguages(params.lang),
getYoutubeCategories(params.lang),
]);

if (languagesErr !== null || categoriesErr !== null) {
throw new Error("Something went wrong on our end");
Expand Down
8 changes: 6 additions & 2 deletions apps/web/src/app/[lang]/dashboard/[name]/settings/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,21 @@
import Link from "next/link";
import { usePathname } from "next/navigation";
import type { PropsWithChildren } from "react";
import { useTranslation } from "~/i18n/client";
import type { SupportedLanguages } from "~/i18n/settings";

import { cn } from "~/lib/utils";

type SettingsProps = {
params: {
name: string;
lang: SupportedLanguages;
};
} & PropsWithChildren;

export default function Settings({ params, children }: SettingsProps) {
const pathname = usePathname();
const { t } = useTranslation(params.lang, "settings");

return (
<div className="mx-auto w-full flex-1 px-6 py-8 sm:p-12">
Expand All @@ -30,7 +34,7 @@ export default function Settings({ params, children }: SettingsProps) {
: "border-transparent hover:border-slate-300",
)}
>
general
{t("general.title")}
</div>
</Link>
<Link href={`/dashboard/${params.name}/settings/members`}>
Expand All @@ -44,7 +48,7 @@ export default function Settings({ params, children }: SettingsProps) {
: "border-transparent hover:border-slate-300",
)}
>
members
{t("members.title")}
</div>
</Link>
</div>
Expand Down
8 changes: 8 additions & 0 deletions apps/web/src/app/[lang]/dashboard/[name]/settings/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import {
getOwnOrganizationByName,
updateOrganizationName,
} from "~/server/actions/organization";
import LocaleSelect from "~/components/locale-select";

type SettingsMembersViewProps = {
params: {
Expand Down Expand Up @@ -137,6 +138,13 @@ export default function SettingsGeneralPage({
<div>
<h2 className="font-selibold text-xl">{t("title")}</h2>

<p>{t('language_section.title')}:</p>
<LocaleSelect lang={params.lang} />
</div>

<div>
<h2 className="font-selibold text-xl">{t('organization_section.title')}</h2>

<Trans
t={t}
i18nKey="description"
Expand Down
8 changes: 2 additions & 6 deletions apps/web/src/app/[lang]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
import Navbar from "~/components/navbar";
import PricingPlans from "~/components/pricing-plans";
import { translation } from "~/i18n";
import type { SupportedLanguages } from "../../i18n/settings";
import type { SupportedLanguages } from "~/i18n/settings";

const featureIcons = [GitPullRequestArrow, Lock, RefreshCw, Fingerprint];

Expand All @@ -24,7 +24,7 @@ export default async function HomePage({ params }: HomePageProps) {

return (
<div className="flex min-h-screen flex-col">
<div className="flex flex-col items-center justify-between border-b border-slate-200 bg-slate-100 p-2">
<div className="flex flex-col items-center justify-between border-b border-slate-200 bg-slate-100 p-2 z-10">
<Navbar lang={params.lang} />
</div>

Expand Down Expand Up @@ -97,10 +97,6 @@ export default async function HomePage({ params }: HomePageProps) {
<p className="mt-2 text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">
{t("feature_section.title")}
</p>

<p className="mt-6 text-lg leading-8 text-gray-600">
{t("feature_section.description")}
</p>
</div>

<div className="mx-auto mt-16 max-w-2xl sm:mt-20 lg:mt-24 lg:max-w-4xl">
Expand Down
8 changes: 6 additions & 2 deletions apps/web/src/app/api/organizations/[name]/projects/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export async function GET(

if (err !== null) {
if (err === "Not found") {
return redirect("404");
return redirect("/404");
}

return NextResponse.json(
Expand All @@ -38,7 +38,11 @@ export async function GET(
);
}

const projectsResponse = await getOrganizationProjects(organization.id, +page, query);
const projectsResponse = await getOrganizationProjects(
organization.id,
+page,
query,
);

return NextResponse.json(projectsResponse);
}
23 changes: 2 additions & 21 deletions apps/web/src/components/create-project/project-create-form.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -82,26 +82,7 @@ export default function ProjectCreateForm({
}, [video, channel]);

function onSuccess(data: TProjectForm) {
const formData = new FormData();

formData.append("license", data.license!);
formData.append("title", data.title!);
formData.append("description", data.description!);
formData.append("categoryId", data.categoryId!);
formData.append("defaultLanguage", data.defaultLanguage!);
formData.append("tags", data.tags!);
formData.append("embeddable", `${data.embeddable!}`);
formData.append("privacyStatus", data.privacyStatus!);
formData.append("publicStatsViewable", `${data.publicStatsViewable!}`);
formData.append(
"selfDeclaredMadeForKids",
`${data.selfDeclaredMadeForKids!}`,
);
formData.append("notifySubscribers", `${data.notifySubscribers!}`);
formData.append("channelId", data.channelId);
formData.append("video", data.video);

mutate(formData);
mutate(data);
}

function onError(errors: FieldErrors<TProjectForm>) {
Expand Down Expand Up @@ -333,7 +314,7 @@ export default function ProjectCreateForm({
}}
className="rounded-full max-w-max"
>
{showMore ? t("show_more") : t("show_less")}
{showMore ? t("show_less") : t("show_more")}
</Button>

{showMore ? (
Expand Down
15 changes: 6 additions & 9 deletions apps/web/src/components/dashboard/project-form.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import {
} from "../ui/form";
import { Input } from "../ui/input";
import { Textarea } from "../ui/textarea";
import { Suspense, useEffect, useState } from "react";
import { Suspense, useState } from "react";
import InputSkeleton from "../ui/skeletons/input-skeleton";
import {
Tooltip,
Expand All @@ -41,13 +41,16 @@ import { Checkbox } from "../ui/checkbox";
import type { UseCreateProjectMutationResult } from "~/lib/mutations/useCreateProjectMutation";
import CategorySelect from "../create-project/categories-select";
import LanguageSelect from "../create-project/language-select";
import type { UseEditProjectMutationResult } from "~/lib/mutations/useEditProjectMutation";
import type { SupportedLanguages } from "~/i18n/settings";
import { useTranslation } from "~/i18n/client";
import { Trans } from "react-i18next";

interface ProjectFormProps {
defaultValues: InsertProject;
mutate: UseCreateProjectMutationResult["mutate"];
mutate:
| UseCreateProjectMutationResult["mutate"]
| UseEditProjectMutationResult["mutate"];
isPending?: UseCreateProjectMutationResult["isPending"];
lang: SupportedLanguages;
}
Expand All @@ -65,12 +68,6 @@ export default function ProjectForm({

const { t } = useTranslation(lang, "project-form");

const formValues = form.watch();

useEffect(() => {
console.log(formValues);
}, [formValues]);

const [showMore, setShowMore] = useState(false);

function onSuccess(data: TProjectForm) {
Expand Down Expand Up @@ -264,7 +261,7 @@ export default function ProjectForm({
}}
className="rounded-full max-w-max"
>
{showMore ? t("show_more") : t("show_less")}
{showMore ? t("show_less") : t("show_more")}
</Button>

{showMore ? (
Expand Down
15 changes: 12 additions & 3 deletions apps/web/src/components/dashboard/project-pagination.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,22 @@ import {
} from "../ui/pagination";
import type { Organization } from "~/lib/validators/organization";
import { useProjectsPaginatedQuery } from "~/lib/queries/useProjectsQuery";
import type { SupportedLanguages } from "~/i18n/settings";
import { useTranslation } from "~/i18n/client";

interface ProjectPaginationProps {
organizationName: Organization["name"];
lang: SupportedLanguages;
}

export default function ProjectPagination({
organizationName,
lang,
}: ProjectPaginationProps) {
const router = useRouter();
const pathname = usePathname();
const searchParams = useSearchParams();
const { t } = useTranslation(lang, "overview", { keyPrefix: "" });

const page = searchParams.get("page") ?? "1";
const query = searchParams.get("q") ?? "";
Expand All @@ -47,7 +52,9 @@ export default function ProjectPagination({
onClick={() => {
if (+page! > 1) changePage(+page! - 1);
}}
/>
>
{t("next_page_button")}
</PaginationPrevious>
</PaginationItem>

<div className="flex order-0 col-span-2 md:col-span-4 mx-auto relative -left-5 @[20.5rem]:static">
Expand Down Expand Up @@ -89,7 +96,7 @@ export default function ProjectPagination({
pages.push(
<PaginationItem key={i}>
<PaginationLink
isActive={i === +page!}
isActive={i === +page! + 1}
onClick={() => {
changePage(i);
}}
Expand Down Expand Up @@ -125,7 +132,9 @@ export default function ProjectPagination({
onClick={() => {
if (data.hasNextPage) changePage(+page! + 1);
}}
/>
>
{t("previous_page_button")}
</PaginationNext>
</PaginationItem>
</PaginationContent>
</Pagination>
Expand Down
Loading

0 comments on commit 6c5e0d4

Please sign in to comment.