feat: update translation with defaultValue

This commit is contained in:
hanif salafi 2025-07-06 16:23:45 +07:00
parent 0d12b105fb
commit d5303c4919
188 changed files with 2184 additions and 1893 deletions

View File

@ -240,7 +240,7 @@ export default function CreateCategoryModal() {
<Dialog open={isOpen} onOpenChange={setIsOpen}>
<DialogTrigger asChild>
<Button color="primary" size="md">
{t("add-category")}
{t("add-category", { defaultValue: "Add Category" })}
</Button>
</DialogTrigger>
<DialogContent
@ -248,7 +248,7 @@ export default function CreateCategoryModal() {
className="sm:h-[300px] md:h-[300px] lg:h-[500px] overflow-y-auto"
>
<DialogHeader>
<DialogTitle> {t("add-category")}</DialogTitle>
<DialogTitle> {t("add-category", { defaultValue: "Add Category" })}</DialogTitle>
</DialogHeader>
<Form {...form}>
<form

View File

@ -188,7 +188,7 @@ const AdminCategoryTable = () => {
return (
<div className="w-full overflow-x-auto bg-white p-4 rounded-sm space-y-3">
<div className="flex justify-between mb-10 items-center">
<p className="text-xl font-medium text-default-900">{t("category")}</p>
<p className="text-xl font-medium text-default-900">{t("category", { defaultValue: "Category" })}</p>
<CreateCategoryModal />
</div>
<div className="flex items-end justify-end">

View File

@ -121,12 +121,12 @@ export default function CreateFAQModal() {
<Dialog open={isOpen} onOpenChange={setIsOpen}>
<DialogTrigger asChild>
<Button color="primary" size="md">
{t("add")} FAQ
{t("add", { defaultValue: "Add" })} FAQ
</Button>
</DialogTrigger>
<DialogContent size="md">
<DialogHeader>
<DialogTitle>{t("add")} FAQ</DialogTitle>
<DialogTitle>{t("add", { defaultValue: "Add" })} FAQ</DialogTitle>
</DialogHeader>
<Form {...form}>
<form

View File

@ -111,12 +111,12 @@ export default function CreateFAQModal() {
<Dialog open={isOpen} onOpenChange={setIsOpen}>
<DialogTrigger asChild>
<Button color="primary" size="md">
{t("add")} Feedback
{t("add", { defaultValue: "Add" })} Feedback
</Button>
</DialogTrigger>
<DialogContent size="md">
<DialogHeader>
<DialogTitle>{t("add")} Feedback</DialogTitle>
<DialogTitle>{t("add", { defaultValue: "Add" })} Feedback</DialogTitle>
</DialogHeader>
<Form {...form}>
<form

View File

@ -62,7 +62,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
const MySwal = withReactContent(Swal);

View File

@ -109,12 +109,12 @@ export default function CreateTagModal() {
<Dialog open={isOpen} onOpenChange={setIsOpen}>
<DialogTrigger asChild>
<Button color="primary" size="md">
{t("add-tags")}
{t("add-tags", { defaultValue: "Add Tags" })}
</Button>
</DialogTrigger>
<DialogContent size="md">
<DialogHeader>
<DialogTitle> {t("add-tags")}</DialogTitle>
<DialogTitle> {t("add-tags", { defaultValue: "Add Tags" })}</DialogTitle>
</DialogHeader>
<Form {...form}>
<form

View File

@ -126,7 +126,7 @@ const AdminTagTable = () => {
return (
<div className="w-full overflow-x-auto bg-white p-4 rounded-sm space-y-3">
<div className="flex justify-between mb-10 items-center">
<p className="text-xl font-medium text-default-900">{t("tags")}</p>
<p className="text-xl font-medium text-default-900">{t("tags", { defaultValue: "Tags" })}</p>
<CreateFAQModal />
</div>

View File

@ -144,7 +144,7 @@ const t = useTranslations("CalendarApp")
className="dark:bg-background dark:text-foreground"
>
<Plus className="w-4 h-4 me-1" />
{t("addEvent")}
{t("addEvent", { defaultValue: "Add Event" })}
</Button>
</CardHeader>
<div className="px-3">
@ -160,14 +160,14 @@ const t = useTranslations("CalendarApp")
<div id="external-events" className=" space-y-1.5 mt-6 px-4">
<p className="text-sm font-medium text-default-700 mb-3">
{t("shortDesc")}
{t("shortDesc", { defaultValue: "Short Desc" })}
</p>
{dragEvents.map((event) => (
<ExternalDraggingevent key={event.id} event={event} />
))}
</div>
<div className="py-4 text-default-800 font-semibold text-xs uppercase mt-4 mb-2 px-4">
{t("filter")}
{t("filter", { defaultValue: "Filter" })}
</div>
<ul className="space-y-3 px-4">
<li className=" flex gap-3">

View File

@ -15,10 +15,10 @@ const Blank = () => {
<div className="text-center flex flex-col items-center">
<Icon icon="uiw:message" className="text-7xl text-default-300" />
<div className="mt-4 text-lg font-medium text-default-500">
{t("blankMessageTitle")}
{t("blankMessageTitle", { defaultValue: "Blank Message Title" })}
</div>
<p className="mt-1 text-sm font-medium text-default-400">
{t("blankMessageDesc")}
{t("blankMessageDesc", { defaultValue: "Blank Message Desc" })}
</p>
{isLg && (
<Button className="mt-2" onClick={() => setChatConfig({ ...chatConfig, isOpen: true })}>

View File

@ -61,12 +61,12 @@ const Compose = () => {
className="dark:bg-background dark:ring-background dark:text-foreground"
>
<Plus className="w-6 h-6 me-1.5" />
{t("compose")}
{t("compose", { defaultValue: "Compose" })}
</Button>
<DialogContent>
<DialogHeader className="mb-6">
<DialogTitle> {t("composeEmail")}</DialogTitle>
<DialogTitle> {t("composeEmail", { defaultValue: "Compose Email" })}</DialogTitle>
</DialogHeader>
<form onSubmit={handleSubmit(onSubmit)} className="space-y-3.5">

View File

@ -19,7 +19,7 @@ const AddBoard = () => {
<DialogTrigger asChild>
<Button>
<Plus className="h-4 w-4 me-1" />
{t("addBoard")}
{t("addBoard", { defaultValue: "Add Board" })}
</Button>
</DialogTrigger>
<DialogContent className="sm:max-w-[425px]">

View File

@ -120,7 +120,7 @@ const KanBanApp = ({ defaultCols, defaultTasks }: { defaultCols: Column[], defau
<div className="">
<div className="flex gap-2 mb-5">
<div className="flex-1 font-medium lg:text-2xl text-xl capitalize text-default-900">
{t("title")}
{t("title", { defaultValue: "Title" })}
</div>
<div className="flex-none">
<AddBoard />

View File

@ -72,12 +72,12 @@ const CreateTodo = () => {
<DialogTrigger asChild>
<Button fullWidth size="lg" className="dark:bg-background dark:text-foreground">
<Plus className="w-6 h-6 me-1.5" />
{t("addTask")}
{t("addTask", { defaultValue: "Add Task" })}
</Button>
</DialogTrigger>
<DialogContent>
<DialogHeader className="mb-4">
<DialogTitle> {t("addTask")}</DialogTitle>
<DialogTitle> {t("addTask", { defaultValue: "Add Task" })}</DialogTitle>
</DialogHeader>
<Form {...form}>
<form onSubmit={form.handleSubmit(onSubmit)} className="space-y-4">

View File

@ -44,7 +44,7 @@ const t = useTranslations("TodoApp");
}
]} />
<div className="py-4 px-5 text-default-800 font-semibold text-xs uppercase">
{t("todos")}
{t("todos", { defaultValue: "Todos" })}
</div>
<Nav dotStyle links={[
{

View File

@ -92,7 +92,7 @@ const ChangeLogPage = () => {
<div className="lg:col-span-8 col-span-12">
<Card>
<CardHeader>
<CardTitle>{t("version")}</CardTitle>
<CardTitle>{t("version", { defaultValue: "Version" })}</CardTitle>
</CardHeader>
<CardContent>
<Badge color="primary" className="dark:text-white">New</Badge>
@ -149,12 +149,12 @@ const ChangeLogPage = () => {
<Card>
<CardHeader>
<CardTitle>
{t("changelog")}
{t("changelog", { defaultValue: "Changelog" })}
</CardTitle>
</CardHeader>
<CardContent>
<h5 className="text-xs font-medium">
{t("versionHistory")}
{t("versionHistory", { defaultValue: "Version History" })}
</h5>
<ul className="space-y-3 mt-6 divide-y divide-default-100 dark:divide-default-300">
{items.map((item, i) => (

View File

@ -425,7 +425,7 @@ const CalendarView = ({ categories }: CalendarViewProps) => {
<div className="px-2">
{events.length === 0 ? (
<div className="mt-1 py-2 rounded-lg bg-white border border-black">
<p className="text-center">{t("no-data-yet")}</p>
<p className="text-center">{t("no-data-yet", { defaultValue: "No Data Yet" })}</p>
</div>
) : (
<>
@ -543,7 +543,7 @@ const CalendarView = ({ categories }: CalendarViewProps) => {
className="dark:bg-background dark:text-foreground w-full"
>
<Plus className="w-4 h-4 me-1" />
{t("addEvent")}
{t("addEvent", { defaultValue: "Add Event" })}
</Button>
)}
@ -552,12 +552,12 @@ const CalendarView = ({ categories }: CalendarViewProps) => {
<DialogTrigger asChild>
<Button className="dark:bg-background dark:text-foreground w-full">
<Book size={15} className="w-4 h-4 mr-3" />
{t("bag-pa-monitoring-results")}
{t("bag-pa-monitoring-results", { defaultValue: "Bag Pa Monitoring Results" })}
</Button>
</DialogTrigger>
<DialogContent className="sm:max-w-[425px] md:max-w-[500px] lg:max-w-[1500px] overflow-y-auto max-h-[500px]">
<DialogHeader>
<DialogTitle>{t("monitoring-results")}</DialogTitle>
<DialogTitle>{t("monitoring-results", { defaultValue: "Monitoring Results" })}</DialogTitle>
</DialogHeader>
{getModalContent()}
</DialogContent>
@ -580,7 +580,7 @@ const CalendarView = ({ categories }: CalendarViewProps) => {
</div>
<div className="py-4 text-default-800 font-semibold text-xs uppercase mt-4 mb-2 px-4">
{t("filter")}
{t("filter", { defaultValue: "Filter" })}
</div>
<ul className="space-y-3 px-4">
<li className="flex gap-3">

View File

@ -181,13 +181,13 @@ const BlogTable = () => {
<CardTitle>
<div className="flex items-center">
<div className="flex-1 text-xl font-medium text-default-900">
{t("table")} {t("blog")}
{t("table", { defaultValue: "Table" })} {t("blog", { defaultValue: "Blog" })}
</div>
<div className="flex-none">
<Link href={"/contributor/blog/create"}>
<Button fullWidth color="primary">
<Plus size={18} className=" me-1.5" />
{t("create-indeks")}
{t("create-indeks", { defaultValue: "Create Indeks" })}
</Button>
</Link>
</div>
@ -254,7 +254,7 @@ const BlogTable = () => {
<div className="flex flex-row justify-between my-1 mx-1">
<p>Filter</p>
</div>
<Label className="ml-2">{t("category")}</Label>
<Label className="ml-2">{t("category", { defaultValue: "Category" })}</Label>
{categories.length > 0 ? (
categories.map((category) => (
<div

View File

@ -25,24 +25,24 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => <span>{row.getValue("no")}</span>,
},
{
accessorKey: "title",
header: t("title"),
header: t("title", { defaultValue: "Title" }),
cell: ({ row }) => (
<span className="whitespace-normal">{row.getValue("title")}</span>
),
},
{
accessorKey: "categoryName",
header: t("category"),
header: t("category", { defaultValue: "Category" }),
cell: ({ row }) => <span>{row.getValue("categoryName")}</span>,
},
{
accessorKey: "createdAt",
header: t("upload-date"),
header: t("upload-date", { defaultValue: "Upload Date" }),
cell: ({ row }) => {
const createdAt = row.getValue("createdAt") as
| string
@ -58,7 +58,7 @@ const useTableColumns = () => {
},
{
accessorKey: "tags",
header: t("tag"),
header: t("tag", { defaultValue: "Tag" }),
cell: ({ row }) => <span className="">{row.getValue("tags")}</span>,
},
{
@ -89,7 +89,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
const router = useRouter();

View File

@ -27,7 +27,7 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => (
<div className="flex items-center gap-5">
<div className="flex-1 text-start">
@ -40,7 +40,7 @@ const useTableColumns = () => {
},
{
accessorKey: "title",
header: t("title"),
header: t("title", { defaultValue: "Title" }),
cell: ({ row }: { row: { getValue: (key: string) => string } }) => {
const title: string = row.getValue("title");
return (
@ -52,7 +52,7 @@ const useTableColumns = () => {
},
{
accessorKey: "categoryName",
header: t("category-name"),
header: t("category-name", { defaultValue: "Category Name" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">
{row.getValue("categoryName")}
@ -61,7 +61,7 @@ const useTableColumns = () => {
},
{
accessorKey: "createdAt",
header: t("upload-date"),
header: t("upload-date", { defaultValue: "Upload Date" }),
cell: ({ row }) => {
const createdAt = row.getValue("createdAt") as
| string
@ -77,14 +77,14 @@ const useTableColumns = () => {
},
{
accessorKey: "creatorName",
header: t("creator-group"),
header: t("creator-group", { defaultValue: "Creator Group" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">{row.getValue("creatorName")}</span>
),
},
{
accessorKey: "creatorGroupLevelName",
header: t("source"),
header: t("source", { defaultValue: "Source" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">
{row.getValue("creatorGroupLevelName")}
@ -93,7 +93,7 @@ const useTableColumns = () => {
},
{
accessorKey: "publishedOn",
header: t("published"),
header: t("published", { defaultValue: "Published" }),
cell: ({ row }) => {
const isPublish = row.original.isPublish;
const isPublishOnPolda = row.original.isPublishOnPolda;
@ -177,7 +177,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
const MySwal = withReactContent(Swal);

View File

@ -22,10 +22,10 @@ const ReactTableAudioPage = () => {
</div>
<div>
<p>
<span className="text-red-500">{t("average")} :0</span>
<span className="text-red-500">{t("average", { defaultValue: "Average" })} :0</span>
</p>
<p className="text-sm">
{t("Hasil_unggah_disetujui_hari_ini")}
{t("Hasil_unggah_disetujui_hari_ini", { defaultValue: "Hasil Unggah Disetujui Hari Ini" })}
</p>
</div>
</div>
@ -35,9 +35,9 @@ const ReactTableAudioPage = () => {
</div>
<div>
<p>
<span className="text-red-500">{t("average")} :0</span>
<span className="text-red-500">{t("average", { defaultValue: "Average" })} :0</span>
</p>
<p className="text-sm">{t("Hasil_unggah_direvisi_hari_ini")}</p>
<p className="text-sm">{t("Hasil_unggah_direvisi_hari_ini", { defaultValue: "Hasil Unggah Direvisi Hari Ini" })}</p>
</div>
</div>
<div className="flex flex-row items-center text-xl font-medium text-default-900 gap-2">
@ -46,9 +46,9 @@ const ReactTableAudioPage = () => {
</div>
<div>
<p>
<span className="text-red-500">{t("average")} :0</span>
<span className="text-red-500">{t("average", { defaultValue: "Average" })} :0</span>
</p>
<p className="text-sm">{t("Hasil_unggah_ditolak_hari_ini")}</p>
<p className="text-sm">{t("Hasil_unggah_ditolak_hari_ini", { defaultValue: "Hasil Unggah Ditolak Hari Ini" })}</p>
</div>
</div>
</div>
@ -58,13 +58,13 @@ const ReactTableAudioPage = () => {
<CardTitle>
<div className="flex items-center">
<div className="flex-1 text-xl font-medium text-default-900">
{t("audio")}
{t("audio", { defaultValue: "Audio" })}
</div>
<div className="flex-none">
<Link href={"/contributor/content/audio/create"}>
<Button color="primary" className="text-white">
<UploadIcon size={18} className="mr-2" />
{t("create-audio")}
{t("create-audio", { defaultValue: "Create Audio" })}
</Button>
</Link>
{/* <Button color="primary" className="text-white ml-3">

View File

@ -30,7 +30,7 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => (
<div className="flex items-center gap-5">
<div className="flex-1 text-start">
@ -43,7 +43,7 @@ const useTableColumns = () => {
},
{
accessorKey: "title",
header: t("title"),
header: t("title", { defaultValue: "Title" }),
cell: ({ row }: { row: { getValue: (key: string) => string } }) => {
const title: string = row.getValue("title");
return (
@ -55,7 +55,7 @@ const useTableColumns = () => {
},
{
accessorKey: "categoryName",
header: t("category-name"),
header: t("category-name", { defaultValue: "Category Name" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">
{row.getValue("categoryName")}
@ -64,7 +64,7 @@ const useTableColumns = () => {
},
{
accessorKey: "createdAt",
header: t("upload-date"),
header: t("upload-date", { defaultValue: "Upload Date" }),
cell: ({ row }) => {
const createdAt = row.getValue("createdAt") as
| string
@ -80,14 +80,14 @@ const useTableColumns = () => {
},
{
accessorKey: "creatorName",
header: t("creator-group"),
header: t("creator-group", { defaultValue: "Creator Group" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">{row.getValue("creatorName")}</span>
),
},
{
accessorKey: "creatorGroupLevelName",
header: t("source"),
header: t("source", { defaultValue: "Source" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">
{row.getValue("creatorGroupLevelName")}
@ -96,7 +96,7 @@ const useTableColumns = () => {
},
{
accessorKey: "publishedOn",
header: t("published"),
header: t("published", { defaultValue: "Published" }),
cell: ({ row }) => {
const isPublish = row.original.isPublish;
const isPublishOnPolda = row.original.isPublishOnPolda;
@ -182,7 +182,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
const router = useRouter();

View File

@ -22,10 +22,10 @@ const ReactTableImagePage = () => {
</div>
<div>
<p>
<span className="text-red-500">{t("average")} :0</span>
<span className="text-red-500">{t("average", { defaultValue: "Average" })} :0</span>
</p>
<p className="text-sm">
{t("Hasil_unggah_disetujui_hari_ini")}
{t("Hasil_unggah_disetujui_hari_ini", { defaultValue: "Hasil Unggah Disetujui Hari Ini" })}
</p>
</div>
</div>
@ -35,9 +35,9 @@ const ReactTableImagePage = () => {
</div>
<div>
<p>
<span className="text-red-500">{t("average")} :0</span>
<span className="text-red-500">{t("average", { defaultValue: "Average" })} :0</span>
</p>
<p className="text-sm">{t("Hasil_unggah_direvisi_hari_ini")}</p>
<p className="text-sm">{t("Hasil_unggah_direvisi_hari_ini", { defaultValue: "Hasil Unggah Direvisi Hari Ini" })}</p>
</div>
</div>
<div className="flex flex-row items-center text-xl font-medium text-default-900 gap-2">
@ -46,9 +46,9 @@ const ReactTableImagePage = () => {
</div>
<div>
<p>
<span className="text-red-500">{t("average")} :0</span>
<span className="text-red-500">{t("average", { defaultValue: "Average" })} :0</span>
</p>
<p className="text-sm">{t("Hasil_unggah_ditolak_hari_ini")}</p>
<p className="text-sm">{t("Hasil_unggah_ditolak_hari_ini", { defaultValue: "Hasil Unggah Ditolak Hari Ini" })}</p>
</div>
</div>
</div>
@ -58,13 +58,13 @@ const ReactTableImagePage = () => {
<CardTitle>
<div className="flex items-center">
<div className="flex-1 text-xl font-medium text-default-900">
{t("image")}
{t("image", { defaultValue: "Image" })}
</div>
<div className="flex-none">
<Link href={"/contributor/content/image/create"}>
<Button color="primary" className="text-white">
<UploadIcon size={18} className="mr-2" />
{t("create-image")}
{t("create-image", { defaultValue: "Create Image" })}
</Button>
</Link>
{/* <Link href={"/contributor/content/image/createAi"}>

View File

@ -26,7 +26,7 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => (
<div className="flex items-center gap-5">
<div className="flex-1 text-start">
@ -39,7 +39,7 @@ const useTableColumns = () => {
},
{
accessorKey: "contentTitle",
header: t("title"),
header: t("title", { defaultValue: "Title" }),
cell: ({ row }: { row: { getValue: (key: string) => string } }) => {
const title: string = row.getValue("contentTitle");
return (
@ -51,7 +51,7 @@ const useTableColumns = () => {
},
{
accessorKey: "contentTag",
header: t("tag"),
header: t("tag", { defaultValue: "Tag" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">{row.getValue("contentTag")}</span>
),
@ -59,14 +59,14 @@ const useTableColumns = () => {
{
accessorKey: "contentType",
header: t("type-content"),
header: t("type-content", { defaultValue: "Type Content" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">{row.getValue("contentType")}</span>
),
},
{
accessorKey: "contentCreatedGroupBy",
header: t("source"),
header: t("source", { defaultValue: "Source" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">
{row.getValue("contentCreatedGroupBy")}
@ -98,7 +98,7 @@ const useTableColumns = () => {
{
accessorKey: "contentCreatedDate",
header: t("upload-date"),
header: t("upload-date", { defaultValue: "Upload Date" }),
cell: ({ row }) => {
const createdAt = row.getValue("contentCreatedDate") as
| string

View File

@ -209,7 +209,7 @@ const TableSPIT = () => {
<p>Filter</p>
</div>
<div className="mx-2 my-1">
<Label>{t("date")}</Label>
<Label>{t("date", { defaultValue: "Date" })}</Label>
<Input
type="date"
value={dateFilter}

View File

@ -27,7 +27,7 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => (
<div className="flex items-center gap-5">
<div className="flex-1 text-start">
@ -40,7 +40,7 @@ const useTableColumns = () => {
},
{
accessorKey: "title",
header: t("title"),
header: t("title", { defaultValue: "Title" }),
cell: ({ row }: { row: { getValue: (key: string) => string } }) => {
const title: string = row.getValue("title");
return (
@ -52,7 +52,7 @@ const useTableColumns = () => {
},
{
accessorKey: "categoryName",
header: t("category-name"),
header: t("category-name", { defaultValue: "Category Name" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">
{row.getValue("categoryName")}
@ -61,7 +61,7 @@ const useTableColumns = () => {
},
{
accessorKey: "createdAt",
header: t("upload-date"),
header: t("upload-date", { defaultValue: "Upload Date" }),
cell: ({ row }) => {
const createdAt = row.getValue("createdAt") as
| string
@ -77,14 +77,14 @@ const useTableColumns = () => {
},
{
accessorKey: "creatorName",
header: t("creator-group"),
header: t("creator-group", { defaultValue: "Creator Group" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">{row.getValue("creatorName")}</span>
),
},
{
accessorKey: "creatorGroupLevelName",
header: t("source"),
header: t("source", { defaultValue: "Source" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">
{row.getValue("creatorGroupLevelName")}
@ -93,7 +93,7 @@ const useTableColumns = () => {
},
{
accessorKey: "publishedOn",
header: t("published"),
header: t("published", { defaultValue: "Published" }),
cell: ({ row }) => {
const isPublish = row.original.isPublish;
const isPublishOnPolda = row.original.isPublishOnPolda;
@ -178,7 +178,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
const MySwal = withReactContent(Swal);

View File

@ -23,11 +23,11 @@ const ReactTableTeksPage = () => {
</div>
<div>
<p>
<span className="text-red-500">{t("average")} :0</span>
<span className="text-red-500">{t("average", { defaultValue: "Average" })} :0</span>
</p>
<p className="text-sm">
{" "}
{t("Hasil_unggah_disetujui_hari_ini")}
{t("Hasil_unggah_disetujui_hari_ini", { defaultValue: "Hasil Unggah Disetujui Hari Ini" })}
</p>
</div>
</div>
@ -37,9 +37,9 @@ const ReactTableTeksPage = () => {
</div>
<div>
<p>
<span className="text-red-500">{t("average")} :0</span>
<span className="text-red-500">{t("average", { defaultValue: "Average" })} :0</span>
</p>
<p className="text-sm">{t("Hasil_unggah_direvisi_hari_ini")}</p>
<p className="text-sm">{t("Hasil_unggah_direvisi_hari_ini", { defaultValue: "Hasil Unggah Direvisi Hari Ini" })}</p>
</div>
</div>
<div className="flex flex-row items-center text-xl font-medium text-default-900 gap-2">
@ -48,9 +48,9 @@ const ReactTableTeksPage = () => {
</div>
<div>
<p>
<span className="text-red-500">{t("average")} :0</span>
<span className="text-red-500">{t("average", { defaultValue: "Average" })} :0</span>
</p>
<p className="text-sm">{t("Hasil_unggah_ditolak_hari_ini")}</p>
<p className="text-sm">{t("Hasil_unggah_ditolak_hari_ini", { defaultValue: "Hasil Unggah Ditolak Hari Ini" })}</p>
</div>
</div>
</div>
@ -60,14 +60,14 @@ const ReactTableTeksPage = () => {
<CardTitle>
<div className="flex items-center">
<div className="flex-1 text-xl font-medium text-default-900">
{t("text")}
{t("text", { defaultValue: "Text" })}
</div>
<div className="flex-none">
<Link href={"/contributor/content/teks/create"}>
<Button color="primary" className="text-white">
<UploadIcon size={18} className="mr-2" />
{t("create-text")}
{t("create-text", { defaultValue: "Create Text" })}
</Button>
</Link>
{/* <Button color="primary" className="text-white ml-3">

View File

@ -27,7 +27,7 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => (
<div className="flex items-center gap-5">
<div className="flex-1 text-start">
@ -40,7 +40,7 @@ const useTableColumns = () => {
},
{
accessorKey: "title",
header: t("title"),
header: t("title", { defaultValue: "Title" }),
cell: ({ row }: { row: { getValue: (key: string) => string } }) => {
const title: string = row.getValue("title");
return (
@ -52,7 +52,7 @@ const useTableColumns = () => {
},
{
accessorKey: "categoryName",
header: t("category-name"),
header: t("category-name", { defaultValue: "Category Name" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">
{row.getValue("categoryName")}
@ -61,7 +61,7 @@ const useTableColumns = () => {
},
{
accessorKey: "createdAt",
header: t("upload-date"),
header: t("upload-date", { defaultValue: "Upload Date" }),
cell: ({ row }) => {
const createdAt = row.getValue("createdAt") as
| string
@ -77,14 +77,14 @@ const useTableColumns = () => {
},
{
accessorKey: "creatorName",
header: t("creator-group"),
header: t("creator-group", { defaultValue: "Creator Group" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">{row.getValue("creatorName")}</span>
),
},
{
accessorKey: "creatorGroupLevelName",
header: t("source"),
header: t("source", { defaultValue: "Source" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">
{row.getValue("creatorGroupLevelName")}
@ -93,7 +93,7 @@ const useTableColumns = () => {
},
{
accessorKey: "publishedOn",
header: t("published"),
header: t("published", { defaultValue: "Published" }),
cell: ({ row }) => {
const isPublish = row.original.isPublish;
const isPublishOnPolda = row.original.isPublishOnPolda;
@ -178,7 +178,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
const MySwal = withReactContent(Swal);

View File

@ -23,10 +23,10 @@ const ReactTableVideoPage = () => {
</div>
<div>
<p>
<span className="text-red-500">{t("average")} :0</span>
<span className="text-red-500">{t("average", { defaultValue: "Average" })} :0</span>
</p>
<p className="text-sm">
{t("Hasil_unggah_disetujui_hari_ini")}
{t("Hasil_unggah_disetujui_hari_ini", { defaultValue: "Hasil Unggah Disetujui Hari Ini" })}
</p>
</div>
</div>
@ -36,9 +36,9 @@ const ReactTableVideoPage = () => {
</div>
<div>
<p>
<span className="text-red-500">{t("average")} :0</span>
<span className="text-red-500">{t("average", { defaultValue: "Average" })} :0</span>
</p>
<p className="text-sm">{t("Hasil_unggah_direvisi_hari_ini")}</p>
<p className="text-sm">{t("Hasil_unggah_direvisi_hari_ini", { defaultValue: "Hasil Unggah Direvisi Hari Ini" })}</p>
</div>
</div>
<div className="flex flex-row items-center text-xl font-medium text-default-900 gap-2">
@ -47,9 +47,9 @@ const ReactTableVideoPage = () => {
</div>
<div>
<p>
<span className="text-red-500">{t("average")} :0</span>
<span className="text-red-500">{t("average", { defaultValue: "Average" })} :0</span>
</p>
<p className="text-sm">{t("Hasil_unggah_ditolak_hari_ini")}</p>
<p className="text-sm">{t("Hasil_unggah_ditolak_hari_ini", { defaultValue: "Hasil Unggah Ditolak Hari Ini" })}</p>
</div>
</div>
</div>
@ -59,13 +59,13 @@ const ReactTableVideoPage = () => {
<CardTitle>
<div className="flex items-center">
<div className="flex-1 text-xl font-medium text-default-900">
{t("video")}
{t("video", { defaultValue: "Video" })}
</div>
<div className="flex-none">
<Link href={"/contributor/content/video/create"}>
<Button color="primary" className="text-white">
<UploadIcon size={18} className="mr-2" />
{t("create-video")}
{t("create-video", { defaultValue: "Create Video" })}
</Button>
</Link>
{/* <Button color="primary" className="text-white ml-3">

View File

@ -20,7 +20,7 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => (
<div className="flex items-center gap-5">
<div className="flex-1 text-start">
@ -33,7 +33,7 @@ const useTableColumns = () => {
},
{
accessorKey: "title",
header: t("title"),
header: t("title", { defaultValue: "Title" }),
cell: ({ row }) => (
<div className="flex items-center gap-5">
<div className="flex-1 text-start">
@ -46,7 +46,7 @@ const useTableColumns = () => {
},
{
accessorKey: "createdAt",
header: t("upload-date"),
header: t("upload-date", { defaultValue: "Upload Date" }),
cell: ({ row }) => {
const createdAt = row.getValue("createdAt") as
| string
@ -80,7 +80,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
return (

View File

@ -144,7 +144,7 @@ const MediahubTable = () => {
<CardTitle>
<div className="flex items-center">
<div className="flex-1 text-xl font-medium text-default-900">
{t("planning")} : {t("channel")} Mediahub
{t("planning", { defaultValue: "Planning" })} : {t("channel", { defaultValue: "Channel" })} Mediahub
</div>
</div>
</CardTitle>

View File

@ -20,7 +20,7 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => (
<div className="flex items-center gap-5">
<div className="flex-1 text-start">
@ -33,7 +33,7 @@ const useTableColumns = () => {
},
{
accessorKey: "title",
header: t("title"),
header: t("title", { defaultValue: "Title" }),
cell: ({ row }) => (
<div className="flex items-center gap-5">
<div className="flex-1 text-start">
@ -46,7 +46,7 @@ const useTableColumns = () => {
},
{
accessorKey: "createdAt",
header: t("upload-date"),
header: t("upload-date", { defaultValue: "Upload Date" }),
cell: ({ row }) => {
const createdAt = row.getValue("createdAt") as
| string
@ -80,7 +80,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
return (

View File

@ -143,7 +143,7 @@ const MedsosTable = () => {
<CardTitle>
<div className="flex items-center">
<div className="flex-1 text-xl font-medium text-default-900">
{t("planning")} : {t("channel")} Medsos
{t("planning", { defaultValue: "Planning" })} : {t("channel", { defaultValue: "Channel" })} Medsos
</div>
</div>
</CardTitle>

View File

@ -37,19 +37,19 @@ const useTableColumns = ({
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => <span>{row.getValue("no")}</span>,
},
{
accessorKey: "title",
header: t("title"),
header: t("title", { defaultValue: "Title" }),
cell: ({ row }) => (
<span className="whitespace-normal">{row.getValue("title")}</span>
),
},
{
accessorKey: "createdAt",
header: t("generate-date"),
header: t("generate-date", { defaultValue: "Generate Date" }),
cell: ({ row }) => {
const createdAt = row.getValue("createdAt") as
| string
@ -65,20 +65,20 @@ const useTableColumns = ({
},
{
accessorKey: "version",
header: t("version"),
header: t("version", { defaultValue: "Version" }),
cell: ({ row }) => <span className="">{row.getValue("version")}</span>,
},
{
accessorKey: "status",
header: t("status"),
header: t("status", { defaultValue: "Status" }),
cell: ({ row }) => <span className="">{row.getValue("status")}</span>,
},
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
const router = useRouter();

View File

@ -269,12 +269,12 @@ const ReportTable = () => {
<CardTitle>
<div className="flex items-center">
<div className="flex-1 text-xl font-medium text-default-900">
{t("table")} {t("report")}
{t("table", { defaultValue: "Table" })} {t("report", { defaultValue: "Report" })}
</div>
<div className="flex-none">
<Button fullWidth color="primary" onClick={handleGenerateReport}>
<Plus size={18} className=" me-1.5" />
{t("generate-report")}
{t("generate-report", { defaultValue: "Generate Report" })}
</Button>
</div>
</div>
@ -344,7 +344,7 @@ const ReportTable = () => {
<p>Filter</p>
</div>
<div className="mx-2 my-1">
<Label>{t("date")}</Label>
<Label>{t("date", { defaultValue: "Date" })}</Label>
<Input
type="date"
value={dateFilter}
@ -371,7 +371,7 @@ const ReportTable = () => {
onChange={() => handleStatusCheckboxChange(1)}
/>
<label htmlFor="status-1" className="text-sm">
{t("wait-review")}
{t("wait-review", { defaultValue: "Wait Review" })}
</label>
</div>
<div className="flex items-center px-4 py-1">
@ -383,7 +383,7 @@ const ReportTable = () => {
onChange={() => handleStatusCheckboxChange(2)}
/>
<label htmlFor="status-2" className="text-sm">
{t("acc")}
{t("acc", { defaultValue: "Acc" })}
</label>
</div>
</DropdownMenuContent>

View File

@ -161,7 +161,7 @@ const CalendarPolriTable = () => {
<CardTitle>
<div className="flex items-center">
<div className="flex-1 text-xl font-medium text-default-900">
{t("calendar-polri")} {t("schedule")}
{t("calendar-polri", { defaultValue: "Calendar Polri" })} {t("schedule", { defaultValue: "Schedule" })}
</div>
<div className="flex-none">
<Link href={"/contributor/schedule/calendar-polri/create"}>

View File

@ -24,7 +24,7 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => (
<div className="flex items-center gap-5">
<div className="flex-1 text-start">
@ -38,7 +38,7 @@ const useTableColumns = () => {
{
accessorKey: "title",
header: t("title"),
header: t("title", { defaultValue: "Title" }),
cell: ({ row }: { row: { getValue: (key: string) => string } }) => {
const title: string = row.getValue("title");
return (
@ -50,14 +50,14 @@ const useTableColumns = () => {
},
{
accessorKey: "startDate",
header: t("start-date"),
header: t("start-date", { defaultValue: "Start Date" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">{row.getValue("startDate")}</span>
),
},
{
accessorKey: "endDate",
header: t("end-date"),
header: t("end-date", { defaultValue: "End Date" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">{row.getValue("endDate")}</span>
),
@ -85,7 +85,7 @@ const useTableColumns = () => {
},
{
accessorKey: "createdByName",
header: t("source"),
header: t("source", { defaultValue: "Source" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">
{row.getValue("createdByName")}
@ -96,7 +96,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
const MySwal = withReactContent(Swal);

View File

@ -20,7 +20,7 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => (
<div className="flex items-center gap-5">
<div className="flex-1 text-start">
@ -34,7 +34,7 @@ const useTableColumns = () => {
{
accessorKey: "title",
header: t("title"),
header: t("title", { defaultValue: "Title" }),
cell: ({ row }: { row: { getValue: (key: string) => string } }) => {
const title: string = row.getValue("title");
return (
@ -46,21 +46,21 @@ const useTableColumns = () => {
},
{
accessorKey: "startDate",
header: t("start-date"),
header: t("start-date", { defaultValue: "Start Date" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">{row.getValue("startDate")}</span>
),
},
{
accessorKey: "endDate",
header: t("end-date"),
header: t("end-date", { defaultValue: "End Date" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">{row.getValue("endDate")}</span>
),
},
{
accessorKey: "time",
header: t("time"),
header: t("time", { defaultValue: "Time" }),
cell: ({ row }: { row: { original: any } }) => {
console.log("Row Original Data:", row.original);
const { startTime, endTime } = row.original;
@ -73,7 +73,7 @@ const useTableColumns = () => {
},
{
accessorKey: "address",
header: t("address"),
header: t("address", { defaultValue: "Address" }),
cell: ({ row }: { row: { getValue: (key: string) => string } }) => {
const address: string = row.getValue("address");
return (
@ -111,7 +111,7 @@ const useTableColumns = () => {
},
{
accessorKey: "speaker",
header: t("speaker"),
header: t("speaker", { defaultValue: "Speaker" }),
cell: ({ row }: { row: { original: any } }) => {
console.log("Row Original Data:", row.original);
const { speakerTitle, speakerName } = row.original;
@ -124,7 +124,7 @@ const useTableColumns = () => {
},
{
accessorKey: "uploaderName",
header: t("source"),
header: t("source", { defaultValue: "Source" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">
{row.getValue("uploaderName")}
@ -135,7 +135,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
return (

View File

@ -144,13 +144,13 @@ const EventTable = () => {
<CardTitle>
<div className="flex items-center">
<div className="flex-1 text-xl font-medium text-default-900">
Event {t("schedule")}
Event {t("schedule", { defaultValue: "Schedule" })}
</div>
<div className="flex-none">
<Link href={"/contributor/schedule/event/create"}>
<Button color="primary" className="text-white">
<UploadIcon size={18} className="mr-2" />
{t("create-schedule")}
{t("create-schedule", { defaultValue: "Create Schedule" })}
</Button>
</Link>
</div>

View File

@ -24,7 +24,7 @@ const useTableColumns = (props: { selectedTypeSchedule: string }) => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => (
<div className="flex items-center gap-5">
<div className="flex-1 text-start">
@ -38,7 +38,7 @@ const useTableColumns = (props: { selectedTypeSchedule: string }) => {
{
accessorKey: "title",
header: t("title"),
header: t("title", { defaultValue: "Title" }),
cell: ({ row }: { row: { getValue: (key: string) => string } }) => {
const title: string = row.getValue("title");
return (
@ -50,21 +50,21 @@ const useTableColumns = (props: { selectedTypeSchedule: string }) => {
},
{
accessorKey: "startDate",
header: t("start-date"),
header: t("start-date", { defaultValue: "Start Date" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">{row.getValue("startDate")}</span>
),
},
{
accessorKey: "endDate",
header: t("end-date"),
header: t("end-date", { defaultValue: "End Date" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">{row.getValue("endDate")}</span>
),
},
{
accessorKey: "time",
header: t("time"),
header: t("time", { defaultValue: "Time" }),
cell: ({ row }: { row: { original: any } }) => {
console.log("Row Original Data:", row.original);
const { startTime, endTime } = row.original;
@ -77,7 +77,7 @@ const useTableColumns = (props: { selectedTypeSchedule: string }) => {
},
{
accessorKey: "address",
header: t("address"),
header: t("address", { defaultValue: "Address" }),
cell: ({ row }: { row: { getValue: (key: string) => string } }) => {
const address: string = row.getValue("address");
return (
@ -115,7 +115,7 @@ const useTableColumns = (props: { selectedTypeSchedule: string }) => {
},
{
accessorKey: "speaker",
header: t("speaker"),
header: t("speaker", { defaultValue: "Speaker" }),
cell: ({ row }: { row: { original: any } }) => {
console.log("Row Original Data:", row.original);
const { speakerTitle, speakerName } = row.original;
@ -128,7 +128,7 @@ const useTableColumns = (props: { selectedTypeSchedule: string }) => {
},
{
accessorKey: "uploaderName",
header: t("source"),
header: t("source", { defaultValue: "Source" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">
{row.getValue("uploaderName")}
@ -139,7 +139,7 @@ const useTableColumns = (props: { selectedTypeSchedule: string }) => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
const MySwal = withReactContent(Swal);

View File

@ -168,13 +168,13 @@ const LiveReportTable = () => {
<CardTitle>
<div className="flex items-center">
<div className="flex-1 text-xl font-medium text-default-900">
{t("live-report")} {t("schedule")}
{t("live-report", { defaultValue: "Live Report" })} {t("schedule", { defaultValue: "Schedule" })}
</div>
<div className="flex-none">
<Link href={"/contributor/schedule/live-report/create"}>
<Button color="primary" className="text-white">
<UploadIcon size={18} className="mr-2" />
{t("create-schedule")}
{t("create-schedule", { defaultValue: "Create Schedule" })}
</Button>
</Link>
</div>

View File

@ -20,7 +20,7 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => (
<div className="flex items-center gap-5">
<div className="flex-1 text-start">
@ -34,7 +34,7 @@ const useTableColumns = () => {
{
accessorKey: "title",
header: t("title"),
header: t("title", { defaultValue: "Title" }),
cell: ({ row }: { row: { getValue: (key: string) => string } }) => {
const title: string = row.getValue("title");
return (
@ -46,21 +46,21 @@ const useTableColumns = () => {
},
{
accessorKey: "startDate",
header: t("start-date"),
header: t("start-date", { defaultValue: "Start Date" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">{row.getValue("startDate")}</span>
),
},
{
accessorKey: "endDate",
header: t("end-date"),
header: t("end-date", { defaultValue: "End Date" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">{row.getValue("endDate")}</span>
),
},
{
accessorKey: "time",
header: t("time"),
header: t("time", { defaultValue: "Time" }),
cell: ({ row }: { row: { original: any } }) => {
console.log("Row Original Data:", row.original);
const { startTime, endTime } = row.original;
@ -73,7 +73,7 @@ const useTableColumns = () => {
},
{
accessorKey: "address",
header: t("address"),
header: t("address", { defaultValue: "Address" }),
cell: ({ row }: { row: { getValue: (key: string) => string } }) => {
const address: string = row.getValue("address");
return (
@ -111,7 +111,7 @@ const useTableColumns = () => {
},
{
accessorKey: "speaker",
header: t("speaker"),
header: t("speaker", { defaultValue: "Speaker" }),
cell: ({ row }: { row: { original: any } }) => {
console.log("Row Original Data:", row.original);
const { speakerTitle, speakerName } = row.original;
@ -124,7 +124,7 @@ const useTableColumns = () => {
},
{
accessorKey: "uploaderName",
header: t("source"),
header: t("source", { defaultValue: "Source" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">
{row.getValue("uploaderName")}
@ -135,7 +135,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
return (

View File

@ -158,13 +158,13 @@ const PressConferenceTable = () => {
<CardTitle>
<div className="flex items-center">
<div className="flex-1 text-xl font-medium text-default-900">
{t("press-conference")} {t("schedule")}
{t("press-conference", { defaultValue: "Press Conference" })} {t("schedule", { defaultValue: "Schedule" })}
</div>
<div className="flex-none">
<Link href={"/contributor/schedule/press-conference/create"}>
<Button color="primary" className="text-white">
<UploadIcon size={18} className="mr-2" />
{t("create-schedule")}
{t("create-schedule", { defaultValue: "Create Schedule" })}
</Button>
</Link>
</div>

View File

@ -20,7 +20,7 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => (
<div className="flex items-center gap-5">
<div className="flex-1 text-start">
@ -34,7 +34,7 @@ const useTableColumns = () => {
{
accessorKey: "title",
header: t("title"),
header: t("title", { defaultValue: "Title" }),
cell: ({ row }: { row: { getValue: (key: string) => string } }) => {
const title: string = row.getValue("title");
return (
@ -46,21 +46,21 @@ const useTableColumns = () => {
},
{
accessorKey: "startDate",
header: t("start-date"),
header: t("start-date", { defaultValue: "Start Date" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">{row.getValue("startDate")}</span>
),
},
{
accessorKey: "endDate",
header: t("end-date"),
header: t("end-date", { defaultValue: "End Date" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">{row.getValue("endDate")}</span>
),
},
{
accessorKey: "time",
header: t("time"),
header: t("time", { defaultValue: "Time" }),
cell: ({ row }: { row: { original: any } }) => {
console.log("Row Original Data:", row.original);
const { startTime, endTime } = row.original;
@ -73,7 +73,7 @@ const useTableColumns = () => {
},
{
accessorKey: "address",
header: t("address"),
header: t("address", { defaultValue: "Address" }),
cell: ({ row }: { row: { getValue: (key: string) => string } }) => {
const address: string = row.getValue("address");
return (
@ -111,7 +111,7 @@ const useTableColumns = () => {
},
{
accessorKey: "speaker",
header: t("speaker"),
header: t("speaker", { defaultValue: "Speaker" }),
cell: ({ row }: { row: { original: any } }) => {
console.log("Row Original Data:", row.original);
const { speakerTitle, speakerName } = row.original;
@ -124,7 +124,7 @@ const useTableColumns = () => {
},
{
accessorKey: "uploaderName",
header: t("source"),
header: t("source", { defaultValue: "Source" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">
{row.getValue("uploaderName")}
@ -135,7 +135,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
return (

View File

@ -159,13 +159,13 @@ const PressReleaseTable = () => {
<CardTitle>
<div className="flex items-center">
<div className="flex-1 text-xl font-medium text-default-900">
{t("press-release")} {t("schedule")}
{t("press-release", { defaultValue: "Press Release" })} {t("schedule", { defaultValue: "Schedule" })}
</div>
<div className="flex-none">
<Link href={"/contributor/schedule/press-release/create"}>
<Button color="primary" className="text-white">
<UploadIcon size={18} className="mr-2" />
{t("create-schedule")}
{t("create-schedule", { defaultValue: "Create Schedule" })}
</Button>
</Link>
</div>

View File

@ -27,12 +27,12 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => <span>{row.getValue("no")}</span>,
},
{
accessorKey: "title",
header: t("title"),
header: t("title", { defaultValue: "Title" }),
cell: ({ row }) => (
<div>
<span>{row.getValue("title")}</span>
@ -52,7 +52,7 @@ const useTableColumns = () => {
{
accessorKey: "createdAt",
header: t("upload-date"),
header: t("upload-date", { defaultValue: "Upload Date" }),
cell: ({ row }) => {
const createdAt = row.getValue("createdAt") as
| string
@ -100,7 +100,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
const router = useRouter();

View File

@ -210,7 +210,7 @@ const TaskTaTable = () => {
}
px-[18px] py-1 transition duration-100 rounded`}
>
{t("special-attention")}
{t("special-attention", { defaultValue: "Special Attention" })}
</span>
<span
className={`
@ -222,7 +222,7 @@ const TaskTaTable = () => {
px-[18px] py-1 transition duration-100 rounded
`}
>
{t("daily-tasks")}
{t("daily-tasks", { defaultValue: "Daily Tasks" })}
</span>
</label>
</div>
@ -293,7 +293,7 @@ const TaskTaTable = () => {
<p>Filter</p>
</div>
<div className="mx-2 my-1">
<Label>{t("date")}</Label>
<Label>{t("date", { defaultValue: "Date" })}</Label>
<Input
type="date"
value={dateFilter}
@ -320,7 +320,7 @@ const TaskTaTable = () => {
onChange={() => handleStatusCheckboxChange(1)}
/>
<label htmlFor="status-1" className="text-sm">
{t("done")}
{t("done", { defaultValue: "Done" })}
</label>
</div>
<div className="flex items-center px-4 py-1">
@ -332,7 +332,7 @@ const TaskTaTable = () => {
onChange={() => handleStatusCheckboxChange(2)}
/>
<label htmlFor="status-2" className="text-sm">
{t("active")}
{t("active", { defaultValue: "Active" })}
</label>
</div>
</DropdownMenuContent>

View File

@ -35,14 +35,14 @@ const TaskTaPage = () => {
<CardTitle>
<div className="flex flex-col sm:flex-row lg:flex-row lg:items-center">
<div className="flex-1 text-xl font-medium text-default-900">
{t("tabel")} {t("task-ta")}
{t("tabel", { defaultValue: "Tabel" })} {t("task-ta", { defaultValue: "Task Ta" })}
</div>
<div className="flex-none">
{roleId !== 12 && (
<Link href={"/contributor/task-ta/create"}>
<Button color="primary" className="text-white">
<UploadIcon size={18} className="mr-2" />
{t("create-task")}
{t("create-task", { defaultValue: "Create Task" })}
</Button>
</Link>
)}

View File

@ -27,12 +27,12 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => <span>{row.getValue("no")}</span>,
},
{
accessorKey: "title",
header: t("title"),
header: t("title", { defaultValue: "Title" }),
cell: ({ row }) => (
<div>
<span>{row.getValue("title")}</span>
@ -52,13 +52,13 @@ const useTableColumns = () => {
{
accessorKey: "uniqueCode",
header: t("code"),
header: t("code", { defaultValue: "Code" }),
cell: ({ row }) => <span>{row.getValue("uniqueCode")}</span>,
},
{
accessorKey: "assignmentMainType",
header: t("type-task"),
header: t("type-task", { defaultValue: "Type Task" }),
cell: ({ row }) => {
const type = row.getValue("assignmentMainType") as { name: string };
return <span>{type?.name}</span>;
@ -66,7 +66,7 @@ const useTableColumns = () => {
},
{
accessorKey: "assignmentType",
header: t("category-task"),
header: t("category-task", { defaultValue: "Category Task" }),
cell: ({ row }) => {
const type = row.getValue("assignmentType") as { name: string };
return <span>{type?.name}</span>;
@ -74,7 +74,7 @@ const useTableColumns = () => {
},
{
accessorKey: "createdAt",
header: t("upload-date"),
header: t("upload-date", { defaultValue: "Upload Date" }),
cell: ({ row }) => {
const createdAt = row.getValue("createdAt") as
| string
@ -122,7 +122,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
const router = useRouter();

View File

@ -211,7 +211,7 @@ const TaskTable = () => {
}
px-[18px] py-1 transition duration-100 rounded`}
>
{t("special-attention")}
{t("special-attention", { defaultValue: "Special Attention" })}
</span>
<span
className={`
@ -223,7 +223,7 @@ const TaskTable = () => {
px-[18px] py-1 transition duration-100 rounded
`}
>
{t("daily-tasks")}
{t("daily-tasks", { defaultValue: "Daily Tasks" })}
</span>
</label>
</div>
@ -294,7 +294,7 @@ const TaskTable = () => {
<p>Filter</p>
</div>
<div className="mx-2 my-1">
<Label>{t("date")}</Label>
<Label>{t("date", { defaultValue: "Date" })}</Label>
<Input
type="date"
value={dateFilter}
@ -321,7 +321,7 @@ const TaskTable = () => {
onChange={() => handleStatusCheckboxChange(1)}
/>
<label htmlFor="status-1" className="text-sm">
{t("done")}
{t("done", { defaultValue: "Done" })}
</label>
</div>
<div className="flex items-center px-4 py-1">
@ -333,7 +333,7 @@ const TaskTable = () => {
onChange={() => handleStatusCheckboxChange(2)}
/>
<label htmlFor="status-2" className="text-sm">
{t("active")}
{t("active", { defaultValue: "Active" })}
</label>
</div>
</DropdownMenuContent>

View File

@ -29,13 +29,13 @@ const TaskPage = () => {
<CardTitle>
<div className="flex flex-col sm:flex-row lg:flex-row lg:items-center">
<div className="flex-1 text-xl font-medium text-default-900">
{t("tabel")} {t("task")}
{t("tabel", { defaultValue: "Tabel" })} {t("task", { defaultValue: "Task" })}
</div>
<div className="flex-none">
<Link href={"/contributor/task/create"}>
<Button color="primary" className="text-white">
<UploadIcon size={18} className="mr-2" />
{t("create-task")}
{t("create-task", { defaultValue: "Create Task" })}
</Button>
</Link>
</div>

View File

@ -40,31 +40,31 @@ const DashboardPage = () => {
value="routine-task"
className="data-[state=active]:bg-primary data-[state=active]:text-primary-foreground rounded-md px-6"
>
{t("task-routine")}
{t("task-routine", { defaultValue: "Task Routine" })}
</TabsTrigger>
<TabsTrigger
value="task"
className="data-[state=active]:bg-primary data-[state=active]:text-primary-foreground rounded-md px-6"
>
{t("task")}
{t("task", { defaultValue: "Task" })}
</TabsTrigger>
<TabsTrigger
value="schedule"
className="data-[state=active]:bg-primary data-[state=active]:text-primary-foreground rounded-md px-6"
>
{t("schedule")}
{t("schedule", { defaultValue: "Schedule" })}
</TabsTrigger>
<TabsTrigger
value="indeks"
className="data-[state=active]:bg-primary data-[state=active]:text-primary-foreground rounded-md px-6"
>
{t("indeks")}
{t("indeks", { defaultValue: "Indeks" })}
</TabsTrigger>
<TabsTrigger
value="report"
className="data-[state=active]:bg-primary data-[state=active]:text-primary-foreground rounded-md px-6"
>
{t("report")}
{t("report", { defaultValue: "Report" })}
</TabsTrigger>
</TabsList>
</Card>
@ -75,18 +75,18 @@ const DashboardPage = () => {
<CardContent className="p-4">
<div className="grid md:grid-cols-3 gap-4">
<StatisticsBlock
title={t("Hasil_unggah_disetujui_hari_ini")}
title={t("Hasil_unggah_disetujui_hari_ini", { defaultValue: "Hasil Unggah Disetujui Hari Ini" })}
total="3,564"
className="bg-info/10 border-none shadow-none"
/>
<StatisticsBlock
title={t("Hasil_unggah_direvisi_hari_ini")}
title={t("Hasil_unggah_direvisi_hari_ini", { defaultValue: "Hasil Unggah Direvisi Hari Ini" })}
total="564"
className="bg-warning/10 border-none shadow-none"
chartColor="#FB8F65"
/>
<StatisticsBlock
title={t("Hasil_unggah_ditolak_hari_ini")}
title={t("Hasil_unggah_ditolak_hari_ini", { defaultValue: "Hasil Unggah Ditolak Hari Ini" })}
total="+5.0%"
className="bg-primary/10 border-none shadow-none"
chartColor="#2563eb"
@ -101,7 +101,7 @@ const DashboardPage = () => {
<Card>
<CardHeader className="flex flex-row items-center">
<CardTitle className="flex-1 text-lg">
{t("Total-Content-Production")}
{t("Total-Content-Production", { defaultValue: "Total Content Production" })}
</CardTitle>
<DashboardDropdown />
</CardHeader>
@ -113,7 +113,7 @@ const DashboardPage = () => {
<div className="lg:col-span-8 col-span-12">
<Card>
<CardHeader className="flex flex-row items-center">
<CardTitle className="flex-1">{t("tabel")}</CardTitle>
<CardTitle className="flex-1">{t("tabel", { defaultValue: "Tabel" })}</CardTitle>
{/* <DashboardDropdown /> */}
</CardHeader>
<CardContent className="p-0">

View File

@ -44,7 +44,7 @@ const MostSales = () => {
return (
<Card>
<CardHeader className="flex flex-row items-center">
<CardTitle className="flex-1"> {t("most_sales_map_title")}</CardTitle>
<CardTitle className="flex-1"> {t("most_sales_map_title", { defaultValue: "Most Sales Map Title" })}</CardTitle>
<div className="border border-default-200 dark:border-default-300 rounded p-1 flex items-center bg-background">
<span
className={cn(
@ -56,7 +56,7 @@ const MostSales = () => {
)}
onClick={() => setFilterMap("global")}
>
{t("total_earning_map_button_1")}
{t("total_earning_map_button_1", { defaultValue: "Total Earning Map Button 1" })}
</span>
<span
className={cn(
@ -76,7 +76,7 @@ const MostSales = () => {
<div className="md:flex items-center">
<div className="flex-none">
<h4 className="text-default-600 text-sm font-normal mb-1.5">
{t("total_earning_map_desc")}
{t("total_earning_map_desc", { defaultValue: "Total Earning Map Desc" })}
</h4>
{filterMap === "usa" && (
<div className="text-lg font-medium mb-1.5 text-default-900">
@ -90,7 +90,7 @@ const MostSales = () => {
)}
<div className="text-xs font-light">
<span className="text-primary">+08%</span>{" "}
{t("total_earning_map_desc_2")}
{t("total_earning_map_desc_2", { defaultValue: "Total Earning Map Desc 2" })}
</div>
<ul className="bg-default-50 rounded p-4 min-w-[184px] space-y-5 mt-4">
{sales.map((item, i) => (

View File

@ -118,25 +118,25 @@ const RecentActivity: React.FC = () => {
<div className="flex flex-row items-center gap-3">
<ImageIcon size={40} className="text-blue-700" />
<p className="text-xl">
{counts.images} {t("image")}
{counts.images} {t("image", { defaultValue: "Image" })}
</p>
</div>
<div className="flex flex-row items-center gap-3">
<YoutubeIcon size={40} className="text-blue-700" />
<p className="text-xl">
{counts.audiovisual} {t("video")}
{counts.audiovisual} {t("video", { defaultValue: "Video" })}
</p>
</div>
<div className="flex flex-row items-center gap-3">
<DockIcon size={40} className="text-blue-700" />
<p className="text-xl">
{counts.text} {t("text")}
{counts.text} {t("text", { defaultValue: "Text" })}
</p>
</div>
<div className="flex flex-row items-center gap-3">
<MicIcon size={40} className="text-blue-700" />
<p className="text-xl">
{counts.audio} {t("audio")}
{counts.audio} {t("audio", { defaultValue: "Audio" })}
</p>
</div>
</div>

View File

@ -31,7 +31,7 @@ const CounterButton = () => {
icon="heroicons:shopping-cart"
className="w-4 h-4 me-2 text-sm leading-none"
/>
{t("add_to_cart")}
{t("add_to_cart", { defaultValue: "Add To Cart" })}
</Button>
)}
{show && (

View File

@ -29,7 +29,7 @@ const Sidebar = () => {
<CardContent className="space-y-6 divide-y divide-default-200 ">
<div className="space-y-2">
<div className="text-default-800 font-semibold text-xs uppercase pt-5 pb-2">
{t("categories")}
{t("categories", { defaultValue: "Categories" })}
</div>
{categories.map((category, i) => (
<div
@ -52,12 +52,12 @@ const Sidebar = () => {
))}
<button className="text-xs font-medium text-default-900 pt-1">
{t("view_less")}
{t("view_less", { defaultValue: "View Less" })}
</button>
</div>
<div className="space-y-2 ltr:-ml-6 ltr:pl-6 rtl:-mr-6 rtl:pr-6">
<div className="text-default-800 font-semibold text-xs uppercase pt-5 pb-2">
{t("brands")}
{t("brands", { defaultValue: "Brands" })}
</div>
{brands.map((brand, i) => (
<div
@ -77,12 +77,12 @@ const Sidebar = () => {
</div>
))}
<button className="text-xs font-medium text-default-900 pt-1">
{t("view_less")}
{t("view_less", { defaultValue: "View Less" })}
</button>
</div>
<div className="space-y-2 ltr:-ml-6 ltr:pl-6 rtl:-mr-6 rtl:pr-6">
<div className="text-default-800 font-semibold text-xs uppercase pt-5 pb-2">
{t("price")}
{t("price", { defaultValue: "Price" })}
</div>
{prices.map((price, i) => (
<div
@ -104,7 +104,7 @@ const Sidebar = () => {
</div>
<div className="space-y-2 ltr:-ml-6 ltr:pl-6 rtl:-mr-6 rtl:pr-6">
<div className="text-default-800 font-semibold text-xs uppercase pt-5 pb-2">
{t("ratings")}
{t("ratings", { defaultValue: "Ratings" })}
</div>
{ratings.map((rating, i) => (
<div

View File

@ -21,19 +21,19 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => <span> {row.getValue("no")}</span>,
},
{
accessorKey: "title",
header: t("question"),
header: t("question", { defaultValue: "Question" }),
cell: ({ row }) => (
<span className="normal-case"> {row.getValue("title")}</span>
),
},
{
accessorKey: "commentFromUserName",
header: t("sender"),
header: t("sender", { defaultValue: "Sender" }),
cell: ({ row }) => (
<span className="normal-case">
{row.getValue("commentFromUserName")}
@ -42,7 +42,7 @@ const useTableColumns = () => {
},
{
accessorKey: "Type",
header: t("type"),
header: t("type", { defaultValue: "Type" }),
cell: ({ row }) => {
const type = row.original.type;
return <span className="normal-case">{type?.name || "N/A"}</span>;
@ -50,7 +50,7 @@ const useTableColumns = () => {
},
{
accessorKey: "createdAt",
header: t("time"),
header: t("time", { defaultValue: "Time" }),
cell: ({ row }) => {
const createdAt = row.getValue("createdAt") as
| string
@ -85,7 +85,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
const router = useRouter();

View File

@ -21,19 +21,19 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => <span> {row.getValue("no")}</span>,
},
{
accessorKey: "title",
header: t("question"),
header: t("question", { defaultValue: "Question" }),
cell: ({ row }) => (
<span className="normal-case"> {row.getValue("title")}</span>
),
},
{
accessorKey: "commentFromUserName",
header: t("sender"),
header: t("sender", { defaultValue: "Sender" }),
cell: ({ row }) => (
<span className="normal-case">
{row.getValue("commentFromUserName")}
@ -42,7 +42,7 @@ const useTableColumns = () => {
},
{
accessorKey: "type",
header: t("type"),
header: t("type", { defaultValue: "Type" }),
cell: ({ row }) => {
const type = row.original.type; // Akses properti category
return <span className="normal-case">{type?.name || "N/A"}</span>;
@ -50,7 +50,7 @@ const useTableColumns = () => {
},
{
accessorKey: "createdAt",
header: t("time"),
header: t("time", { defaultValue: "Time" }),
cell: ({ row }) => {
const createdAt = row.getValue("createdAt") as
| string
@ -85,7 +85,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
return (

View File

@ -21,19 +21,19 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => <span> {row.getValue("no")}</span>,
},
{
accessorKey: "title",
header: t("question"),
header: t("question", { defaultValue: "Question" }),
cell: ({ row }) => (
<span className="normal-case"> {row.getValue("title")}</span>
),
},
{
accessorKey: "createdBy",
header: t("sender"),
header: t("sender", { defaultValue: "Sender" }),
cell: ({ row }) => {
const createdBy = row.original.createdBy; // Akses properti category
return (
@ -43,7 +43,7 @@ const useTableColumns = () => {
},
{
accessorKey: "sendTo",
header: t("sendto"),
header: t("sendto", { defaultValue: "Sendto" }),
cell: ({ row }) => {
const sendTo = row.original.sendTo; // Akses properti category
return <span className="normal-case">{sendTo?.fullname || "N/A"}</span>;
@ -51,7 +51,7 @@ const useTableColumns = () => {
},
{
accessorKey: "createdAt",
header: t("time"),
header: t("time", { defaultValue: "Time" }),
cell: ({ row }) => {
const createdAt = row.getValue("createdAt") as
| string
@ -68,7 +68,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
return (

View File

@ -25,7 +25,7 @@ const CommunicationPage = () => {
<Link href="/shared/communication/internal/create">
<Button color="primary" size="md">
<PlusIcon size={18} className="mr-2" />
{t("new-question")}
{t("new-question", { defaultValue: "New Question" })}
</Button>
</Link>
)}
@ -33,7 +33,7 @@ const CommunicationPage = () => {
<Link href="/shared/communication/collaboration/create">
<Button color="primary" size="md">
<PlusIcon size={18} className="mr-2" />
{t("new-collaboration")}
{t("new-collaboration", { defaultValue: "New Collaboration" })}
</Button>
</Link>
)}
@ -49,7 +49,7 @@ const CommunicationPage = () => {
: "bg-white text-black "
}`}
>
{t("internal-questions")}
{t("internal-questions", { defaultValue: "Internal Questions" })}
</Button>
<Button
rounded="md"
@ -61,7 +61,7 @@ const CommunicationPage = () => {
: "bg-white text-black "
}`}
>
{t("escalation")}
{t("escalation", { defaultValue: "Escalation" })}
</Button>
<Button
rounded="md"
@ -73,7 +73,7 @@ const CommunicationPage = () => {
: "bg-white text-black "
}`}
>
{t("collaboration")}
{t("collaboration", { defaultValue: "Collaboration" })}
</Button>
</div>
{tab === "Pertanyaan Internal" && <InternalTable />}

View File

@ -26,7 +26,7 @@ const useTableColumns = () => {
const columns: ColumnDef<any>[] = [
{
accessorKey: "no",
header: t("no"),
header: t("no", { defaultValue: "No" }),
cell: ({ row }) => (
<div className="flex items-center gap-5">
<div className="flex-1 text-start">
@ -39,7 +39,7 @@ const useTableColumns = () => {
},
{
accessorKey: "hastagCode",
header: t("code"),
header: t("code", { defaultValue: "Code" }),
cell: ({ row }) => (
<div className="flex items-center gap-5">
<div className="flex-1 text-start">
@ -55,7 +55,7 @@ const useTableColumns = () => {
},
{
accessorKey: "theme",
header: t("title"),
header: t("title", { defaultValue: "Title" }),
cell: ({ row }) => (
<div className="flex items-center gap-5">
<div className="flex-1 text-start">
@ -68,14 +68,14 @@ const useTableColumns = () => {
},
{
accessorKey: "duration",
header: t("duration"),
header: t("duration", { defaultValue: "Duration" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">{row.getValue("duration")}</span>
),
},
{
accessorKey: "targetOutput",
header: t("target-output"),
header: t("target-output", { defaultValue: "Target Output" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">
{row.getValue("targetOutput")}
@ -84,7 +84,7 @@ const useTableColumns = () => {
},
{
accessorKey: "targetParticipantTopLevel",
header: t("target-participant"),
header: t("target-participant", { defaultValue: "Target Participant" }),
cell: ({ row }) => (
<span className="whitespace-nowrap">
{row.getValue("targetParticipantTopLevel")}
@ -133,7 +133,7 @@ const useTableColumns = () => {
{
id: "actions",
accessorKey: "action",
header: t("action"),
header: t("action", { defaultValue: "Action" }),
enableHiding: false,
cell: ({ row }) => {
const MySwal = withReactContent(Swal);

View File

@ -25,14 +25,14 @@ const ContestPage = () => {
<CardTitle>
<div className="flex items-center">
<div className="flex-1 text-xl font-medium text-default-900">
{t("table")} {t("contest")}
{t("table", { defaultValue: "Table" })} {t("contest", { defaultValue: "Contest" })}
</div>
{userLevelId !== 776 && userLevelId !== null && (
<div className="flex-none">
<Link href={"/shared/contest/create"}>
<Button color="primary" className="text-white">
<UploadIcon size={18} className="mr-2" />
{t("create-contest")}
{t("create-contest", { defaultValue: "Create Contest" })}
</Button>
</Link>
</div>

View File

@ -380,17 +380,17 @@ export default function DetailAcceptImage() {
<div className="text-gray-500 flex flex-col lg:flex-row justify-between items-center border-t mt-4">
<div className="flex flex-col lg:flex-row items-center mt-3 lg:justify-between">
<p className="text-xs lg:text-sm">
{t("by")}&nbsp;
{t("by", { defaultValue: "By" })}&nbsp;
<span className="font-semibold text-black dark:text-white">
{detail?.uploadedBy?.userLevel?.name}
</span>
</p>
{/* <p className="text-xs lg:text-sm">
&nbsp;|&nbsp;{t("updatedOn")}
&nbsp;|&nbsp;{t("updatedOn", { defaultValue: "Updated On" })}
{detail?.updatedAt} WIB &nbsp;|&nbsp;
</p> */}
<p className="text-xs lg:text-sm">
&nbsp;|&nbsp;{t("updatedOn")}&nbsp;
&nbsp;|&nbsp;{t("updatedOn", { defaultValue: "Updated On" })}&nbsp;
{formatDateToIndonesian(new Date(detail?.updatedAt))}{" "}
{detail?.timezone ? detail?.timezone : "WIB"}
&nbsp;
@ -403,7 +403,7 @@ export default function DetailAcceptImage() {
</div>
<div className="mt-3">
<p className="flex text-end text-xs lg:text-sm font-semibold">
{t("creator")}
{t("creator", { defaultValue: "Creator" })}
{detail?.creatorName}
</p>
</div>

View File

@ -35,7 +35,7 @@ const CuratedContentPage = () => {
<Tabs defaultValue="giat-routine" className="w-full">
<Card className="py-3 px-2 my-4">
<p className="text-lg font-semibold ml-2">
{t("content-curation")}
{t("content-curation", { defaultValue: "Content Curation" })}
</p>
<TabsList className="flex-wrap">
<TabsTrigger

View File

@ -486,10 +486,10 @@ const FilterPage = () => {
<div className="flex flex-col md:flex-row items-start gap-5 py-10 px-4 lg:px-20 bg-[#f7f7f7] dark:bg-black">
<p>
{" "}
Audio {">"} <span className="font-bold">{t("allAudio")}</span>
Audio {">"} <span className="font-bold">{t("allAudio", { defaultValue: "All Audio" })}</span>
</p>
<p className="font-bold">|</p>
<p>{`${t("thereIs")} ${totalContent} ${t("downloadableAudio")}`}</p>
<p>{`${t("thereIs", { defaultValue: "There Is" })} ${totalContent} ${t("downloadableAudio", { defaultValue: "Downloadable Audio" })}`}</p>
</div>
{/* Left */}
@ -506,7 +506,7 @@ const FilterPage = () => {
htmlFor="search"
className="block text-sm font-medium text-gray-700 dark:text-white"
>
{t("search")}
{t("search", { defaultValue: "Search" })}
</label>
<Input
value={searchTitle}
@ -515,28 +515,28 @@ const FilterPage = () => {
onKeyDown={handleKeyDown}
type="text"
id="search"
placeholder={t("searchTitle")}
placeholder={t("searchTitle", { defaultValue: "Search Title" })}
className="mt-1 w-full text-sm border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("monthYear")}
{t("monthYear", { defaultValue: "Month Year" })}
</label>
<ReactDatePicker
selected={monthYearFilter}
className="mt-1 w-full text-xs border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
onChange={(date) => setMonthYearFilter(date)}
dateFormat="MM | yyyy"
placeholderText={t("selectYear")}
placeholderText={t("selectYear", { defaultValue: "Select Year" })}
showMonthYearPicker
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("date")}
{t("date", { defaultValue: "Date" })}
</label>
<div className="flex flex-row justify justify-between gap-2">
<ReactDatePicker
@ -547,7 +547,7 @@ const FilterPage = () => {
onChange={(update) => {
setDateRange(update);
}}
placeholderText={t("searchDate")}
placeholderText={t("searchDate", { defaultValue: "Search Date" })}
onCalendarClose={() => setCalenderState(!calenderState)}
/>
<div className="flex items-center">
@ -568,7 +568,7 @@ const FilterPage = () => {
<div>
<h3 className="text-sm font-medium text-gray-700 dark:text-white">
{t("categories")}
{t("categories", { defaultValue: "Categories" })}
</h3>
<ul className="mt-2 space-y-2">
{categories?.map((category: any) => (
@ -707,14 +707,14 @@ const FilterPage = () => {
<div className="w-full pr-4 lg:pr-16 pb-4">
<Reveal>
<div className="flex flex-col items-end mb-4">
<h2 className="text-lg font-semibold">{t("sortBy")} </h2>
<h2 className="text-lg font-semibold">{t("sortBy", { defaultValue: "Sort By" })} </h2>
<select
defaultValue={sortBy == "popular" ? "terpopuler" : "terbaru"}
onChange={(e) => handleSorting(e)}
className="border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
>
<option value="latest">{t("latest")}</option>
<option value="popular">{t("mostPopular")}</option>
<option value="latest">{t("latest", { defaultValue: "Latest" })}</option>
<option value="popular">{t("mostPopular", { defaultValue: "Most Popular" })}</option>
</select>
</div>

View File

@ -502,10 +502,10 @@ const FilterPage = () => {
<div className="flex flex-col md:flex-row items-start gap-5 py-10 px-4 lg:px-20 bg-[#f7f7f7] dark:bg-black">
<p>
{" "}
{t("text")} {">"} <span className="font-bold">{t("allText")}</span>
{t("text", { defaultValue: "Text" })} {">"} <span className="font-bold">{t("allText", { defaultValue: "All Text" })}</span>
</p>
<p className="font-bold">|</p>
<p>{`${t("thereIs")} ${totalContent} ${t("downloadableText")}`}</p>
<p>{`${t("thereIs", { defaultValue: "There Is" })} ${totalContent} ${t("downloadableText", { defaultValue: "Downloadable Text" })}`}</p>
</div>
{/* Left */}
@ -522,7 +522,7 @@ const FilterPage = () => {
htmlFor="search"
className="block text-sm font-medium text-gray-700 dark:text-white"
>
{t("search")}
{t("search", { defaultValue: "Search" })}
</label>
<Input
value={searchTitle}
@ -531,28 +531,28 @@ const FilterPage = () => {
onKeyDown={handleKeyDown}
type="text"
id="search"
placeholder={t("searchTitle")}
placeholder={t("searchTitle", { defaultValue: "Search Title" })}
className="mt-1 w-full border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("monthYear")}
{t("monthYear", { defaultValue: "Month Year" })}
</label>
<ReactDatePicker
selected={monthYearFilter}
className="mt-1 w-full text-xs border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
onChange={(date) => setMonthYearFilter(date)}
dateFormat="MM | yyyy"
placeholderText={t("selectYear")}
placeholderText={t("selectYear", { defaultValue: "Select Year" })}
showMonthYearPicker
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("date")}
{t("date", { defaultValue: "Date" })}
</label>
<div className="flex flex-row justify justify-between gap-2">
<ReactDatePicker
@ -563,7 +563,7 @@ const FilterPage = () => {
onChange={(update) => {
setDateRange(update);
}}
placeholderText={t("selectDate")}
placeholderText={t("selectDate", { defaultValue: "Select Date" })}
onCalendarClose={() => setCalenderState(!calenderState)}
/>
<div className="flex items-center">
@ -584,7 +584,7 @@ const FilterPage = () => {
<div>
<h3 className="text-sm font-medium text-gray-700 dark:text-white">
{t("categories")}
{t("categories", { defaultValue: "Categories" })}
</h3>
<ul className="mt-2 space-y-2">
{categories.map((category: any) => (
@ -769,14 +769,14 @@ const FilterPage = () => {
<Reveal>
<div className="flex-1">
<div className="flex flex-col items-end mb-4">
<h2 className="text-lg font-semibold">{t("sortBy")}</h2>
<h2 className="text-lg font-semibold">{t("sortBy", { defaultValue: "Sort By" })}</h2>
<select
defaultValue={sortBy == "popular" ? "terpopuler" : "terbaru"}
onChange={(e) => handleSorting(e)}
className="border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
>
<option value="latest">{t("latest")}</option>
<option value="popular">{t("mostPopular")}</option>
<option value="latest">{t("latest", { defaultValue: "Latest" })}</option>
<option value="popular">{t("mostPopular", { defaultValue: "Most Popular" })}</option>
</select>
</div>

View File

@ -500,13 +500,13 @@ const FilterPage = () => {
{/* Header */}
<div className="flex flex-row md:flex-row items-start gap-3 py-10 px-4 lg:px-20 bg-[#f7f7f7] dark:bg-black">
<p> {t("image")}</p>
<p> {t("image", { defaultValue: "Image" })}</p>
{">"}
<p>
<span className="font-bold">{t("allImage")}</span>
<span className="font-bold">{t("allImage", { defaultValue: "All Image" })}</span>
</p>
<p className="font-bold">|</p>
<p>{`${t("thereIs")} ${totalContent} ${t("downloadableImage")}`}</p>
<p>{`${t("thereIs", { defaultValue: "There Is" })} ${totalContent} ${t("downloadableImage", { defaultValue: "Downloadable Image" })}`}</p>
</div>
{/* Left */}
@ -533,7 +533,7 @@ const FilterPage = () => {
htmlFor="search"
className="block text-sm font-medium text-gray-700 dark:text-white"
>
{t("search")}
{t("search", { defaultValue: "Search" })}
</label>
<Input
value={searchTitle}
@ -542,28 +542,28 @@ const FilterPage = () => {
onKeyDown={handleKeyDown}
type="text"
id="search"
placeholder={t("searchTitle")}
placeholder={t("searchTitle", { defaultValue: "Search Title" })}
className="mt-1 w-full border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("monthYear")}
{t("monthYear", { defaultValue: "Month Year" })}
</label>
<ReactDatePicker
selected={monthYearFilter}
className="mt-1 w-full text-xs border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
onChange={(date) => setMonthYearFilter(date)}
dateFormat="MM | yyyy"
placeholderText={t("selectYear")}
placeholderText={t("selectYear", { defaultValue: "Select Year" })}
showMonthYearPicker
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("date")}
{t("date", { defaultValue: "Date" })}
</label>
<div className="flex flex-row justify justify-between gap-2">
<ReactDatePicker
@ -574,7 +574,7 @@ const FilterPage = () => {
onChange={(update) => {
setDateRange(update);
}}
placeholderText={t("selectDate")}
placeholderText={t("selectDate", { defaultValue: "Select Date" })}
onCalendarClose={() => setCalenderState(!calenderState)}
/>
<div className="flex items-center">
@ -595,7 +595,7 @@ const FilterPage = () => {
<div>
<h3 className="text-sm font-medium text-gray-700 dark:text-white">
{t("categories")}
{t("categories", { defaultValue: "Categories" })}
</h3>
<ul className="mt-2 space-y-2">
{categories.map((category: any) => (
@ -753,14 +753,14 @@ const FilterPage = () => {
<Reveal>
<div className="w-full">
<div className="flex flex-col items-end mb-4">
<h2 className="text-lg font-semibold">{t("sortBy")}</h2>
<h2 className="text-lg font-semibold">{t("sortBy", { defaultValue: "Sort By" })}</h2>
<select
defaultValue={sortBy == "popular" ? "terpopuler" : "terbaru"}
onChange={(e) => handleSorting(e)}
className="border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
>
<option value="latest">{t("latest")}</option>
<option value="popular">{t("mostPopular")}</option>
<option value="latest">{t("latest", { defaultValue: "Latest" })}</option>
<option value="popular">{t("mostPopular", { defaultValue: "Most Popular" })}</option>
</select>
</div>

View File

@ -215,11 +215,11 @@ const IndeksDetail = () => {
<div className="text-gray-500 flex border-t mt-4">
<div className="flex mt-2">
<p className="text-xs lg:text-sm mb-2 ">
{t("by")}&nbsp;
{t("by", { defaultValue: "By" })}&nbsp;
<span className="font-semibold text-gray-500">
{indeksData?.uploaderName}
</span>
&nbsp; | &nbsp;{t("updatedOn")} {indeksData?.createdAt} WIB
&nbsp; | &nbsp;{t("updatedOn", { defaultValue: "Updated On" })} {indeksData?.createdAt} WIB
&nbsp;
</p>
</div>
@ -240,7 +240,7 @@ const IndeksDetail = () => {
<div className="flex flex-col py-5 p-0 lg:p-10 bg-[#f7f7f7] dark:bg-slate-600">
<div className="gap-5 flex flex-col px-4 lg:px-[300px]">
<p className="flex items-start text-bases lg:text-lg">
{t("comment")}
{t("comment", { defaultValue: "Comment" })}
</p>
<Textarea
placeholder="Type your comments here."
@ -252,7 +252,7 @@ const IndeksDetail = () => {
className="flex items-start bg-[#bb3523] text-white rounded-lg text-sm lg:text-base w-fit px-3 lg:px-4 py-1"
onClick={() => postData()}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</button>
</div>
@ -298,7 +298,7 @@ const IndeksDetail = () => {
className="text-xs lg:text-sm mr-2 bg-blue-500 text-white py-1 px-2 hover:bg-blue-300 hover:text-black rounded-md"
onClick={() => showInput(`comment-id-${data.id}`)}
>
{t("reply")}
{t("reply", { defaultValue: "Reply" })}
</a>
<a
href="javascript:void(0)"
@ -312,7 +312,7 @@ const IndeksDetail = () => {
className="text-xs lg:text-sm bg-red-500 text-white py-1 px-2 hover:bg-red-300 hover:text-black rounded-md"
onClick={() => deleteData(data.id)}
>
{t("delete")}
{t("delete", { defaultValue: "Delete" })}
</a>
</div>
</div>
@ -325,14 +325,14 @@ const IndeksDetail = () => {
type="text"
id={`input-comment-${data.id}`}
className="p-4 focus:outline-none focus:border-sky-500"
placeholder={t("enterReply")}
placeholder={t("enterReply", { defaultValue: "Enter Reply" })}
/>
<a
href="javascript:void(0)"
className="flex py-1 px-2 rounded-md items-center ml-2 bg-[#f7b357] text-white text-sm lg:text-base"
onClick={() => postDataChild(data.id)}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</a>
</div>
{data.children.length > 0
@ -379,7 +379,7 @@ const IndeksDetail = () => {
showInput(`comment-id-${child1.id}`)
}
>
{t("reply")}
{t("reply", { defaultValue: "Reply" })}
</a>
<a
href="javascript:void(0)"
@ -394,7 +394,7 @@ const IndeksDetail = () => {
}
onClick={() => deleteData(child1.id)}
>
{t("delete")}
{t("delete", { defaultValue: "Delete" })}
</a>
</div>
</div>
@ -407,14 +407,14 @@ const IndeksDetail = () => {
type="text"
id={`input-comment-${child1.id}`}
className="p-4 focus:outline-none focus:border-sky-500"
placeholder={t("enterReply")}
placeholder={t("enterReply", { defaultValue: "Enter Reply" })}
/>
<a
href="javascript:void(0)"
className="flex text-sm lg:text-base py-1 px-2 rounded-md items-center ml-2 bg-[#f7b357] text-white"
onClick={() => postDataChild(child1.id)}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</a>
</div>
{child1.children.length > 0
@ -466,7 +466,7 @@ const IndeksDetail = () => {
showInput("comment-id-" + child2.id)
}
>
{t("reply")}
{t("reply", { defaultValue: "Reply" })}
</a>
<a
href="javascript:void(0)"
@ -481,7 +481,7 @@ const IndeksDetail = () => {
}
onClick={() => deleteData(child2.id)}
>
{t("delete")}
{t("delete", { defaultValue: "Delete" })}
</a>
</div>
</div>
@ -494,14 +494,14 @@ const IndeksDetail = () => {
type="text"
id={`comment-id-${child2.id}`}
className="p-4 focus:outline-none focus:border-sky-500"
placeholder={t("enterReply")}
placeholder={t("enterReply", { defaultValue: "Enter Reply" })}
/>
<a
href="javascript:void(0)"
className="flex text-sm lg:text-base py-1 px-2 rounded-md items-center ml-2 bg-[#f7b357] text-white"
onClick={() => postDataChild(child1.id)}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</a>
</div>
</div>
@ -519,7 +519,7 @@ const IndeksDetail = () => {
<div className="space-x-5 flex flex-col px-4 lg:px-[300px] py-16 gap-5">
<h1 className="font-bold text-base lg:text-xl px-4 lg:px-8">
{" "}
{t("relatedPosts")}
{t("relatedPosts", { defaultValue: "Related Posts" })}
</h1>
<Carousel>
<CarouselContent className="w-full max-w-7xl">

View File

@ -498,11 +498,11 @@ const FilterPage = () => {
<div className="flex flex-col md:flex-row items-start gap-5 py-10 px-4 lg:px-20 bg-[#f7f7f7] dark:bg-black">
<p>
{" "}
{t("video")}&nbsp;
{">"} <span className="font-bold">{t("allVideo")}</span>
{t("video", { defaultValue: "Video" })}&nbsp;
{">"} <span className="font-bold">{t("allVideo", { defaultValue: "All Video" })}</span>
</p>
<p className="font-bold">|</p>
<p>{`${t("thereIs")} ${totalContent} ${t("downloadableVideo")}`}</p>
<p>{`${t("thereIs", { defaultValue: "There Is" })} ${totalContent} ${t("downloadableVideo", { defaultValue: "Downloadable Video" })}`}</p>
</div>
{/* Left */}
@ -519,7 +519,7 @@ const FilterPage = () => {
htmlFor="search"
className="block text-sm font-medium text-gray-700 dark:text-white"
>
{t("search")}
{t("search", { defaultValue: "Search" })}
</label>
<Input
value={searchTitle}
@ -528,28 +528,28 @@ const FilterPage = () => {
onKeyDown={handleKeyDown}
type="text"
id="search"
placeholder={t("searchTitle")}
placeholder={t("searchTitle", { defaultValue: "Search Title" })}
className="mt-1 w-full border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("monthYear")}
{t("monthYear", { defaultValue: "Month Year" })}
</label>
<ReactDatePicker
selected={monthYearFilter}
className="mt-1 w-full text-xs border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
onChange={(date) => setMonthYearFilter(date)}
dateFormat="MM | yyyy"
placeholderText={t("selectYear")}
placeholderText={t("selectYear", { defaultValue: "Select Year" })}
showMonthYearPicker
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("date")}
{t("date", { defaultValue: "Date" })}
</label>
<div className="flex flex-row justify justify-between gap-2">
<ReactDatePicker
@ -560,7 +560,7 @@ const FilterPage = () => {
onChange={(update) => {
setDateRange(update);
}}
placeholderText={t("selectDate")}
placeholderText={t("selectDate", { defaultValue: "Select Date" })}
onCalendarClose={() => setCalenderState(!calenderState)}
/>
<div className="flex items-center">
@ -581,7 +581,7 @@ const FilterPage = () => {
<div>
<h3 className="text-sm font-medium text-gray-700 dark:text-white">
{t("categories")}
{t("categories", { defaultValue: "Categories" })}
</h3>
<ul className="mt-2 space-y-2">
{categories.map((category: any) => (
@ -766,14 +766,14 @@ const FilterPage = () => {
<Reveal>
<div className="w-full">
<div className="flex flex-col items-end mb-4">
<h2 className="text-lg font-semibold">{t("sortBy")}</h2>
<h2 className="text-lg font-semibold">{t("sortBy", { defaultValue: "Sort By" })}</h2>
<select
defaultValue={sortBy == "popular" ? "terpopuler" : "terbaru"}
onChange={(e) => handleSorting(e)}
className="border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
>
<option value="latest">{t("latest")}</option>
<option value="popular">{t("mostPopular")}</option>
<option value="latest">{t("latest", { defaultValue: "Latest" })}</option>
<option value="popular">{t("mostPopular", { defaultValue: "Most Popular" })}</option>
</select>
</div>

View File

@ -136,7 +136,7 @@ const LatestNews = (props: { type: string }) => {
<Reveal>
<div className="my-10 px-4 lg:px-20 gap-3">
<div className="bg-[#c03724] rounded-md p-3 w-fit">
<p className="text-white font-sans font-semibold">Berita {props.type == "popular" ? "Terpopuler" : props.type == "latest" ? t("new") : "Serupa"}</p>
<p className="text-white font-sans font-semibold">Berita {props.type == "popular" ? "Terpopuler" : props.type == "latest" ? t("new", { defaultValue: "New" }) : "Serupa"}</p>
</div>
</div>
<div className="flex flex-col lg:flex-row items-start justify-center gap-8 px-4 lg:px-20">

View File

@ -121,7 +121,7 @@ export default function NewsTickerKaltara() {
<span className="mr-0 lg:mr-2 w-full font-bold">{tanggal}</span>
<div className="absolute right-0 top-0 h-full w-4 bg-[#bb3523] transform translate-x-full clip-path-triangle"></div>
</div>
<div className="text-[13px] lg:text-base w-full lg:w-[200px] text-white font-semibold ml-2 lg:ml-5 flex items-center">{t("breakingNews")} :</div>
<div className="text-[13px] lg:text-base w-full lg:w-[200px] text-white font-semibold ml-2 lg:ml-5 flex items-center">{t("breakingNews", { defaultValue: "Breaking News" })} :</div>
<div className={`w-full px-2 lg:px-5 py-1 flex flex-col lg:flex-row items-center gap-1 transition-transform duration-300 ${animate ? "opacity-0 translate-y-5" : "opacity-100 translate-y-0"}`}>
<Link href={`news/detail/${content[currentNewsIndex]?.id}`} className="hidden lg:block">
<p className="text-[11px] text-white lg:text-base">{content[currentNewsIndex]?.title}</p>

View File

@ -99,14 +99,14 @@
// <div className="text-gray-500 flex flex-col lg:flex-row justify-between items-center border-t mt-4">
// <div className="flex flex-col lg:flex-row items-center mt-3 lg:justify-between">
// <p className="text-xs lg:text-sm">
// {t("by")}&nbsp;<span className="font-semibold text-black dark:text-white">{dataDummy?.uploadedBy}</span>
// {t("by", { defaultValue: "By" })}&nbsp;<span className="font-semibold text-black dark:text-white">{dataDummy?.uploadedBy}</span>
// </p>
// {/* <p className="text-xs lg:text-sm">
// &nbsp;|&nbsp;{t("updatedOn")}
// &nbsp;|&nbsp;{t("updatedOn", { defaultValue: "Updated On" })}
// {detailDataImage?.updatedAt} WIB &nbsp;|&nbsp;
// </p> */}
// <p className="text-xs lg:text-sm">
// &nbsp;|&nbsp;{t("updatedOn")}&nbsp;
// &nbsp;|&nbsp;{t("updatedOn", { defaultValue: "Updated On" })}&nbsp;
// {formatDateToIndonesian(new Date(dataDummy?.updatedAt))} {"WIB"}
// </p>
// <p className="text-xs lg:text-sm flex justify-center items-center">
@ -117,7 +117,7 @@
// </div>
// <div className="mt-3">
// <p className="flex text-end text-xs lg:text-sm font-semibold">
// {t("creator")}
// {t("creator", { defaultValue: "Creator" })}
// {dataDummy?.creatorName}
// </p>
// </div>
@ -713,17 +713,17 @@ const DetailInfo = () => {
<div className="text-gray-500 flex flex-col lg:flex-row justify-between items-center border-t mt-4">
<div className="flex flex-col lg:flex-row items-center mt-3 lg:justify-between">
<p className="text-xs lg:text-sm">
{t("by")}&nbsp;
{t("by", { defaultValue: "By" })}&nbsp;
<span className="font-semibold text-black dark:text-white">
{detailDataImage?.uploadedBy?.userLevel?.name}
</span>
</p>
{/* <p className="text-xs lg:text-sm">
&nbsp;|&nbsp;{t("updatedOn")}
&nbsp;|&nbsp;{t("updatedOn", { defaultValue: "Updated On" })}
{detailDataImage?.updatedAt} WIB &nbsp;|&nbsp;
</p> */}
<p className="text-xs lg:text-sm">
&nbsp;|&nbsp;{t("updatedOn")}&nbsp;
&nbsp;|&nbsp;{t("updatedOn", { defaultValue: "Updated On" })}&nbsp;
{formatDateToIndonesian(
new Date(detailDataImage?.updatedAt)
)}{" "}
@ -737,7 +737,7 @@ const DetailInfo = () => {
</div>
<div className="mt-3">
<p className="flex text-end text-xs lg:text-sm font-semibold">
{t("creator")}
{t("creator", { defaultValue: "Creator" })}
{detailDataImage?.creatorName}
</p>
</div>
@ -765,7 +765,7 @@ const DetailInfo = () => {
className="flex flex-col mb-3 items-center justify-center cursor-pointer"
>
<Icon icon="material-symbols:bookmark" width={40} />
<p className="text-base lg:text-lg">{t("delete")}</p>
<p className="text-base lg:text-lg">{t("delete", { defaultValue: "Delete" })}</p>
</a>
) : (
<a
@ -773,7 +773,7 @@ const DetailInfo = () => {
className="flex flex-col mb-3 items-center justify-center cursor-pointer"
>
<Icon icon="material-symbols:bookmark-outline" width={40} />
<p className="text-base lg:text-lg">{t("save")}</p>
<p className="text-base lg:text-lg">{t("save", { defaultValue: "Save" })}</p>
</a>
)}
@ -803,7 +803,7 @@ const DetailInfo = () => {
{/* Opsi Ukuran Foto */}
<h4 className="flex text-lg justify-center items-center font-semibold my-3">
{t("imageSize")}
{t("imageSize", { defaultValue: "Image Size" })}
</h4>
<div className="border-t border-black my-4"></div>
@ -837,7 +837,7 @@ const DetailInfo = () => {
className="text-red-600 focus:ring-red-600"
onChange={() => setIsDownloadAll(!isDownloadAll)}
/>
<span>{t("downloadAll")}</span>
<span>{t("downloadAll", { defaultValue: "Download All" })}</span>
</label>
</div>
@ -857,12 +857,12 @@ const DetailInfo = () => {
d="m12 16l-5-5l1.4-1.45l2.6 2.6V4h2v8.15l2.6-2.6L17 11zm-6 4q-.825 0-1.412-.587T4 18v-3h2v3h12v-3h2v3q0 .825-.587 1.413T18 20z"
/>
</svg>
{t("download")}
{t("download", { defaultValue: "Download" })}
</button>
{/* Tombol Bagikan */}
<div className="flex flex-row mt-5 justify-center">
<p className="text-base font-semibold">{t("share")}</p>
<p className="text-base font-semibold">{t("share", { defaultValue: "Share" })}</p>
<a
className="ml-8 cursor-pointer"
onClick={() =>
@ -928,10 +928,10 @@ const DetailInfo = () => {
</PopoverTrigger>
<PopoverContent>
<div className="flex flex-col">
<h1 className="mb-2">{t("shareTo")}</h1>
<h1 className="mb-2">{t("shareTo", { defaultValue: "Share To" })}</h1>
<div className="flex flex-col mb-2">
<p className="text-base font-semibold mb-1">
{t("destinationEmail")}
{t("destinationEmail", { defaultValue: "Destination Email" })}
</p>
<Input
value={emailShareInput}
@ -940,14 +940,14 @@ const DetailInfo = () => {
}
onKeyPress={handleEmailList}
type="email"
placeholder={t("pressEnter")}
placeholder={t("pressEnter", { defaultValue: "Press Enter" })}
/>
</div>
<Button
className="bg-blue-500 text-white p-2 w-fit rounded-lg"
onClick={() => shareToEmail()}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</Button>
</div>
</PopoverContent>
@ -961,9 +961,9 @@ const DetailInfo = () => {
{/* Comment */}
<div className="flex flex-col mt-16 p-4 lg:p-10 bg-[#f7f7f7] dark:bg-slate-600">
<div className="gap-5 flex flex-col px-4 lg:px-14">
<p className="flex items-start text-lg">{t("comment")}</p>
<p className="flex items-start text-lg">{t("comment", { defaultValue: "Comment" })}</p>
<Textarea
placeholder={t("leaveComment")}
placeholder={t("leaveComment", { defaultValue: "Leave Comment" })}
className="flex w-full pb-12"
onChange={getInputValue}
/>
@ -971,7 +971,7 @@ const DetailInfo = () => {
onClick={() => postData()}
className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-4 py-1"
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</button>
<div className="border-b-2 border-slate-300 mt-4 w-full self-center"></div>
</div>
@ -1016,14 +1016,14 @@ const DetailInfo = () => {
className="mr-2"
>
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">
{t("reply")}
{t("reply", { defaultValue: "Reply" })}
</small>
</a>
{Number(data.suggestionFrom?.id) == Number(userId) ||
Number(userRoleId) == 2 ? (
<a onClick={() => deleteData(data.id)}>
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">
{t("delete")}
{t("delete", { defaultValue: "Delete" })}
</small>
</a>
) : (
@ -1040,17 +1040,17 @@ const DetailInfo = () => {
<Textarea
id={`input-comment-${data.id}`}
className="p-4 focus:outline-none focus:border-sky-500"
placeholder={t("enterReply")}
placeholder={t("enterReply", { defaultValue: "Enter Reply" })}
/>
<div className="flex flex-row gap-3">
<a onClick={() => postDataChild(data.id)}>
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 mt-2 cursor-pointer">
{t("send")}
{t("send", { defaultValue: "Send" })}
</small>
</a>
<a onClick={() => showInput(`comment-id-${data.id}`)}>
<small className="flex items-start bg-[#bb3523] rounded-lg mt-2 w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">
{t("cancel")}
{t("cancel", { defaultValue: "Cancel" })}
</small>
</a>
</div>
@ -1104,7 +1104,7 @@ const DetailInfo = () => {
}
>
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">
{t("reply")}
{t("reply", { defaultValue: "Reply" })}
</small>
</a>
<a
@ -1119,7 +1119,7 @@ const DetailInfo = () => {
onClick={() => deleteData(child1.id)}
>
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">
{t("delete")}
{t("delete", { defaultValue: "Delete" })}
</small>
</a>
</div>
@ -1135,12 +1135,12 @@ const DetailInfo = () => {
name=""
className="mt-2 "
id={`input-comment-${child1.id}`}
placeholder={t("enterReply")}
placeholder={t("enterReply", { defaultValue: "Enter Reply" })}
/>
<div className="flex flex-row mt-2 gap-3">
<a onClick={() => postDataChild(child1.id)}>
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">
{t("send")}
{t("send", { defaultValue: "Send" })}
</small>
</a>
<a
@ -1149,7 +1149,7 @@ const DetailInfo = () => {
}
>
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">
{t("cancel")}
{t("cancel", { defaultValue: "Cancel" })}
</small>
</a>
</div>
@ -1209,7 +1209,7 @@ const DetailInfo = () => {
}
>
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">
{t("reply")}
{t("reply", { defaultValue: "Reply" })}
</small>
</a>
<a
@ -1224,7 +1224,7 @@ const DetailInfo = () => {
onClick={() => deleteData(child2.id)}
>
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">
{t("delete")}
{t("delete", { defaultValue: "Delete" })}
</small>
</a>
</div>
@ -1246,7 +1246,7 @@ const DetailInfo = () => {
onClick={() => postDataChild(child2.id)}
>
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">
{t("send")}
{t("send", { defaultValue: "Send" })}
</small>
</a>
<a
@ -1255,7 +1255,7 @@ const DetailInfo = () => {
}
>
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">
{t("cancel")}
{t("cancel", { defaultValue: "Cancel" })}
</small>
</a>
</div>

View File

@ -486,10 +486,10 @@ const FilterPage = () => {
<div className="flex flex-col md:flex-row items-start gap-5 py-10 px-4 lg:px-20 bg-[#f7f7f7] dark:bg-black">
<p>
{" "}
Audio {">"} <span className="font-bold">{t("allAudio")}</span>
Audio {">"} <span className="font-bold">{t("allAudio", { defaultValue: "All Audio" })}</span>
</p>
<p className="font-bold">|</p>
<p>{`${t("thereIs")} ${totalContent} ${t("downloadableAudio")}`}</p>
<p>{`${t("thereIs", { defaultValue: "There Is" })} ${totalContent} ${t("downloadableAudio", { defaultValue: "Downloadable Audio" })}`}</p>
</div>
{/* Left */}
@ -506,7 +506,7 @@ const FilterPage = () => {
htmlFor="search"
className="block text-sm font-medium text-gray-700 dark:text-white"
>
{t("search")}
{t("search", { defaultValue: "Search" })}
</label>
<Input
value={searchTitle}
@ -515,28 +515,28 @@ const FilterPage = () => {
onKeyDown={handleKeyDown}
type="text"
id="search"
placeholder={t("searchTitle")}
placeholder={t("searchTitle", { defaultValue: "Search Title" })}
className="mt-1 w-full text-sm border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("monthYear")}
{t("monthYear", { defaultValue: "Month Year" })}
</label>
<ReactDatePicker
selected={monthYearFilter}
className="mt-1 w-full text-xs border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
onChange={(date) => setMonthYearFilter(date)}
dateFormat="MM | yyyy"
placeholderText={t("selectYear")}
placeholderText={t("selectYear", { defaultValue: "Select Year" })}
showMonthYearPicker
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("date")}
{t("date", { defaultValue: "Date" })}
</label>
<div className="flex flex-row justify justify-between gap-2">
<ReactDatePicker
@ -547,7 +547,7 @@ const FilterPage = () => {
onChange={(update) => {
setDateRange(update);
}}
placeholderText={t("searchDate")}
placeholderText={t("searchDate", { defaultValue: "Search Date" })}
onCalendarClose={() => setCalenderState(!calenderState)}
/>
<div className="flex items-center">
@ -568,7 +568,7 @@ const FilterPage = () => {
<div>
<h3 className="text-sm font-medium text-gray-700 dark:text-white">
{t("categories")}
{t("categories", { defaultValue: "Categories" })}
</h3>
<ul className="mt-2 space-y-2">
{categories?.map((category: any) => (
@ -707,14 +707,14 @@ const FilterPage = () => {
<div className="w-full pr-4 lg:pr-16 pb-4">
<Reveal>
<div className="flex flex-col items-end mb-4">
<h2 className="text-lg font-semibold">{t("sortBy")} </h2>
<h2 className="text-lg font-semibold">{t("sortBy", { defaultValue: "Sort By" })} </h2>
<select
defaultValue={sortBy == "popular" ? "terpopuler" : "terbaru"}
onChange={(e) => handleSorting(e)}
className="border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
>
<option value="latest">{t("latest")}</option>
<option value="popular">{t("mostPopular")}</option>
<option value="latest">{t("latest", { defaultValue: "Latest" })}</option>
<option value="popular">{t("mostPopular", { defaultValue: "Most Popular" })}</option>
</select>
</div>

View File

@ -492,10 +492,10 @@ const FilterPage = () => {
<div className="flex flex-row md:flex-row items-start gap-3 py-10 px-4 lg:px-20 bg-[#f7f7f7] dark:bg-black">
<p>
{" "}
{t("text")} {">"} <span className="font-bold">{t("allText")}</span>
{t("text", { defaultValue: "Text" })} {">"} <span className="font-bold">{t("allText", { defaultValue: "All Text" })}</span>
</p>
<p className="font-bold">|</p>
<p>{`${t("thereIs")} ${totalContent} ${t("downloadableText")}`}</p>
<p>{`${t("thereIs", { defaultValue: "There Is" })} ${totalContent} ${t("downloadableText", { defaultValue: "Downloadable Text" })}`}</p>
</div>
{/* Left */}
@ -512,7 +512,7 @@ const FilterPage = () => {
htmlFor="search"
className="block text-sm font-medium text-gray-700 dark:text-white"
>
{t("search")}
{t("search", { defaultValue: "Search" })}
</label>
<Input
value={searchTitle}
@ -521,28 +521,28 @@ const FilterPage = () => {
onKeyDown={handleKeyDown}
type="text"
id="search"
placeholder={t("searchTitle")}
placeholder={t("searchTitle", { defaultValue: "Search Title" })}
className="mt-1 w-full border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("monthYear")}
{t("monthYear", { defaultValue: "Month Year" })}
</label>
<ReactDatePicker
selected={monthYearFilter}
className="mt-1 w-full text-xs border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
onChange={(date) => setMonthYearFilter(date)}
dateFormat="MM | yyyy"
placeholderText={t("selectYear")}
placeholderText={t("selectYear", { defaultValue: "Select Year" })}
showMonthYearPicker
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("date")}
{t("date", { defaultValue: "Date" })}
</label>
<div className="flex flex-row justify justify-between gap-2">
<ReactDatePicker
@ -553,7 +553,7 @@ const FilterPage = () => {
onChange={(update) => {
setDateRange(update);
}}
placeholderText={t("selectDate")}
placeholderText={t("selectDate", { defaultValue: "Select Date" })}
onCalendarClose={() => setCalenderState(!calenderState)}
/>
<div className="flex items-center">
@ -574,7 +574,7 @@ const FilterPage = () => {
<div>
<h3 className="text-sm font-medium text-gray-700 dark:text-white">
{t("categories")}
{t("categories", { defaultValue: "Categories" })}
</h3>
<ul className="mt-2 space-y-2">
{categories.map((category: any) => (
@ -759,14 +759,14 @@ const FilterPage = () => {
<Reveal>
<div className="flex-1">
<div className="flex flex-col items-end mb-4">
<h2 className="text-lg font-semibold">{t("sortBy")}</h2>
<h2 className="text-lg font-semibold">{t("sortBy", { defaultValue: "Sort By" })}</h2>
<select
defaultValue={sortBy == "popular" ? "terpopuler" : "terbaru"}
onChange={(e) => handleSorting(e)}
className="border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
>
<option value="latest">{t("latest")}</option>
<option value="popular">{t("mostPopular")}</option>
<option value="latest">{t("latest", { defaultValue: "Latest" })}</option>
<option value="popular">{t("mostPopular", { defaultValue: "Most Popular" })}</option>
</select>
</div>

View File

@ -469,10 +469,10 @@ const FilterPage = () => {
<div className="flex flex-row md:flex-row items-start gap-3 py-10 px-4 lg:px-20 bg-[#f7f7f7] dark:bg-black">
<p>
{" "}
{t("image")} {">"} <span className="font-bold">{t("allImage")}</span>
{t("image", { defaultValue: "Image" })} {">"} <span className="font-bold">{t("allImage", { defaultValue: "All Image" })}</span>
</p>
<p className="font-bold">|</p>
<p>{`${t("thereIs")} ${totalContent} ${t("downloadableImage")}`}</p>
<p>{`${t("thereIs", { defaultValue: "There Is" })} ${totalContent} ${t("downloadableImage", { defaultValue: "Downloadable Image" })}`}</p>
</div>
{/* Left */}
@ -498,7 +498,7 @@ const FilterPage = () => {
htmlFor="search"
className="block text-sm font-medium text-gray-700 dark:text-white"
>
{t("search")}
{t("search", { defaultValue: "Search" })}
</label>
<Input
value={searchTitle}
@ -507,28 +507,28 @@ const FilterPage = () => {
onKeyDown={handleKeyDown}
type="text"
id="search"
placeholder={t("searchTitle")}
placeholder={t("searchTitle", { defaultValue: "Search Title" })}
className="mt-1 w-full border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("monthYear")}
{t("monthYear", { defaultValue: "Month Year" })}
</label>
<ReactDatePicker
selected={monthYearFilter}
className="mt-1 w-full text-xs border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
onChange={(date) => setMonthYearFilter(date)}
dateFormat="MM | yyyy"
placeholderText={t("selectYear")}
placeholderText={t("selectYear", { defaultValue: "Select Year" })}
showMonthYearPicker
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("date")}
{t("date", { defaultValue: "Date" })}
</label>
<div className="flex flex-row justify justify-between gap-2">
<ReactDatePicker
@ -539,7 +539,7 @@ const FilterPage = () => {
onChange={(update) => {
setDateRange(update);
}}
placeholderText={t("selectDate")}
placeholderText={t("selectDate", { defaultValue: "Select Date" })}
onCalendarClose={() => setCalenderState(!calenderState)}
/>
<div className="flex items-center">
@ -560,7 +560,7 @@ const FilterPage = () => {
<div>
<h3 className="text-sm font-medium text-gray-700 dark:text-white">
{t("categories")}
{t("categories", { defaultValue: "Categories" })}
</h3>
<ul className="mt-2 space-y-2">
{categories.map((category: any) => (
@ -718,14 +718,14 @@ const FilterPage = () => {
<Reveal>
<div className="flex-1">
<div className="flex flex-col items-end mb-4">
<h2 className="text-lg font-semibold">{t("sortBy")}</h2>
<h2 className="text-lg font-semibold">{t("sortBy", { defaultValue: "Sort By" })}</h2>
<select
defaultValue={sortBy == "popular" ? "terpopuler" : "terbaru"}
onChange={(e) => handleSorting(e)}
className="border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
>
<option value="latest">{t("latest")}</option>
<option value="popular">{t("mostPopular")}</option>
<option value="latest">{t("latest", { defaultValue: "Latest" })}</option>
<option value="popular">{t("mostPopular", { defaultValue: "Most Popular" })}</option>
</select>
</div>

View File

@ -215,11 +215,11 @@ const IndeksDetail = () => {
<div className="text-gray-500 flex border-t mt-4">
<div className="flex mt-2">
<p className="text-xs lg:text-sm mb-2 ">
{t("by")}&nbsp;
{t("by", { defaultValue: "By" })}&nbsp;
<span className="font-semibold text-gray-500">
{indeksData?.uploaderName}
</span>
&nbsp; | &nbsp;{t("updatedOn")} {indeksData?.createdAt} WIB
&nbsp; | &nbsp;{t("updatedOn", { defaultValue: "Updated On" })} {indeksData?.createdAt} WIB
&nbsp;
</p>
</div>
@ -240,7 +240,7 @@ const IndeksDetail = () => {
<div className="flex flex-col py-5 p-0 lg:p-10 bg-[#f7f7f7] dark:bg-slate-600">
<div className="gap-5 flex flex-col px-4 lg:px-[300px]">
<p className="flex items-start text-bases lg:text-lg">
{t("comment")}
{t("comment", { defaultValue: "Comment" })}
</p>
<Textarea
placeholder="Type your comments here."
@ -252,7 +252,7 @@ const IndeksDetail = () => {
className="flex items-start bg-[#bb3523] text-white rounded-lg text-sm lg:text-base w-fit px-3 lg:px-4 py-1"
onClick={() => postData()}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</button>
</div>
@ -298,7 +298,7 @@ const IndeksDetail = () => {
className="text-xs lg:text-sm mr-2 bg-blue-500 text-white py-1 px-2 hover:bg-blue-300 hover:text-black rounded-md"
onClick={() => showInput(`comment-id-${data.id}`)}
>
{t("reply")}
{t("reply", { defaultValue: "Reply" })}
</a>
<a
href="javascript:void(0)"
@ -312,7 +312,7 @@ const IndeksDetail = () => {
className="text-xs lg:text-sm bg-red-500 text-white py-1 px-2 hover:bg-red-300 hover:text-black rounded-md"
onClick={() => deleteData(data.id)}
>
{t("delete")}
{t("delete", { defaultValue: "Delete" })}
</a>
</div>
</div>
@ -325,14 +325,14 @@ const IndeksDetail = () => {
type="text"
id={`input-comment-${data.id}`}
className="p-4 focus:outline-none focus:border-sky-500"
placeholder={t("enterReply")}
placeholder={t("enterReply", { defaultValue: "Enter Reply" })}
/>
<a
href="javascript:void(0)"
className="flex py-1 px-2 rounded-md items-center ml-2 bg-[#f7b357] text-white text-sm lg:text-base"
onClick={() => postDataChild(data.id)}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</a>
</div>
{data.children.length > 0
@ -379,7 +379,7 @@ const IndeksDetail = () => {
showInput(`comment-id-${child1.id}`)
}
>
{t("reply")}
{t("reply", { defaultValue: "Reply" })}
</a>
<a
href="javascript:void(0)"
@ -394,7 +394,7 @@ const IndeksDetail = () => {
}
onClick={() => deleteData(child1.id)}
>
{t("delete")}
{t("delete", { defaultValue: "Delete" })}
</a>
</div>
</div>
@ -407,14 +407,14 @@ const IndeksDetail = () => {
type="text"
id={`input-comment-${child1.id}`}
className="p-4 focus:outline-none focus:border-sky-500"
placeholder={t("enterReply")}
placeholder={t("enterReply", { defaultValue: "Enter Reply" })}
/>
<a
href="javascript:void(0)"
className="flex text-sm lg:text-base py-1 px-2 rounded-md items-center ml-2 bg-[#f7b357] text-white"
onClick={() => postDataChild(child1.id)}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</a>
</div>
{child1.children.length > 0
@ -466,7 +466,7 @@ const IndeksDetail = () => {
showInput("comment-id-" + child2.id)
}
>
{t("reply")}
{t("reply", { defaultValue: "Reply" })}
</a>
<a
href="javascript:void(0)"
@ -481,7 +481,7 @@ const IndeksDetail = () => {
}
onClick={() => deleteData(child2.id)}
>
{t("delete")}
{t("delete", { defaultValue: "Delete" })}
</a>
</div>
</div>
@ -494,14 +494,14 @@ const IndeksDetail = () => {
type="text"
id={`comment-id-${child2.id}`}
className="p-4 focus:outline-none focus:border-sky-500"
placeholder={t("enterReply")}
placeholder={t("enterReply", { defaultValue: "Enter Reply" })}
/>
<a
href="javascript:void(0)"
className="flex text-sm lg:text-base py-1 px-2 rounded-md items-center ml-2 bg-[#f7b357] text-white"
onClick={() => postDataChild(child1.id)}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</a>
</div>
</div>
@ -519,7 +519,7 @@ const IndeksDetail = () => {
<div className="space-x-5 flex flex-col px-4 lg:px-[300px] py-16 gap-5">
<h1 className="font-bold text-base lg:text-xl px-4 lg:px-8">
{" "}
{t("relatedPosts")}
{t("relatedPosts", { defaultValue: "Related Posts" })}
</h1>
<Carousel>
<CarouselContent className="w-full max-w-7xl">

View File

@ -486,11 +486,11 @@ const FilterPage = () => {
<div className="flex flex-row md:flex-row items-start gap-3 py-10 px-4 lg:px-20 bg-[#f7f7f7] dark:bg-black">
<p>
{" "}
{t("video")}&nbsp;
{">"} <span className="font-bold">{t("allVideo")}</span>
{t("video", { defaultValue: "Video" })}&nbsp;
{">"} <span className="font-bold">{t("allVideo", { defaultValue: "All Video" })}</span>
</p>
<p className="font-bold">|</p>
<p>{`${t("thereIs")} ${totalContent} ${t("downloadableVideo")}`}</p>
<p>{`${t("thereIs", { defaultValue: "There Is" })} ${totalContent} ${t("downloadableVideo", { defaultValue: "Downloadable Video" })}`}</p>
</div>
{/* Left */}
@ -507,7 +507,7 @@ const FilterPage = () => {
htmlFor="search"
className="block text-sm font-medium text-gray-700 dark:text-white"
>
{t("search")}
{t("search", { defaultValue: "Search" })}
</label>
<Input
value={searchTitle}
@ -516,28 +516,28 @@ const FilterPage = () => {
onKeyDown={handleKeyDown}
type="text"
id="search"
placeholder={t("searchTitle")}
placeholder={t("searchTitle", { defaultValue: "Search Title" })}
className="mt-1 w-full border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("monthYear")}
{t("monthYear", { defaultValue: "Month Year" })}
</label>
<ReactDatePicker
selected={monthYearFilter}
className="mt-1 w-full text-xs border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
onChange={(date) => setMonthYearFilter(date)}
dateFormat="MM | yyyy"
placeholderText={t("selectYear")}
placeholderText={t("selectYear", { defaultValue: "Select Year" })}
showMonthYearPicker
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("date")}
{t("date", { defaultValue: "Date" })}
</label>
<div className="flex flex-row justify justify-between gap-2">
<ReactDatePicker
@ -548,7 +548,7 @@ const FilterPage = () => {
onChange={(update) => {
setDateRange(update);
}}
placeholderText={t("selectDate")}
placeholderText={t("selectDate", { defaultValue: "Select Date" })}
onCalendarClose={() => setCalenderState(!calenderState)}
/>
<div className="flex items-center">
@ -569,7 +569,7 @@ const FilterPage = () => {
<div>
<h3 className="text-sm font-medium text-gray-700 dark:text-white">
{t("categories")}
{t("categories", { defaultValue: "Categories" })}
</h3>
<ul className="mt-2 space-y-2">
{categories.map((category: any) => (
@ -754,14 +754,14 @@ const FilterPage = () => {
<Reveal>
<div className="flex-1">
<div className="flex flex-col items-end mb-4">
<h2 className="text-lg font-semibold">{t("sortBy")}</h2>
<h2 className="text-lg font-semibold">{t("sortBy", { defaultValue: "Sort By" })}</h2>
<select
defaultValue={sortBy == "popular" ? "terpopuler" : "terbaru"}
onChange={(e) => handleSorting(e)}
className="border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
>
<option value="latest">{t("latest")}</option>
<option value="popular">{t("mostPopular")}</option>
<option value="latest">{t("latest", { defaultValue: "Latest" })}</option>
<option value="popular">{t("mostPopular", { defaultValue: "Most Popular" })}</option>
</select>
</div>

View File

@ -488,10 +488,10 @@ const FilterPage = () => {
<div className="flex flex-col md:flex-row items-start gap-5 py-10 px-4 lg:px-20 bg-[#f7f7f7] dark:bg-black">
<p>
{" "}
Audio {">"} <span className="font-bold">{t("allAudio")}</span>
Audio {">"} <span className="font-bold">{t("allAudio", { defaultValue: "All Audio" })}</span>
</p>
<p className="font-bold">|</p>
<p>{`${t("thereIs")} ${totalContent} ${t("downloadableAudio")}`}</p>
<p>{`${t("thereIs", { defaultValue: "There Is" })} ${totalContent} ${t("downloadableAudio", { defaultValue: "Downloadable Audio" })}`}</p>
</div>
{/* Left */}
@ -508,7 +508,7 @@ const FilterPage = () => {
htmlFor="search"
className="block text-sm font-medium text-gray-700 dark:text-white"
>
{t("search")}
{t("search", { defaultValue: "Search" })}
</label>
<Input
value={searchTitle}
@ -517,28 +517,28 @@ const FilterPage = () => {
onKeyDown={handleKeyDown}
type="text"
id="search"
placeholder={t("searchTitle")}
placeholder={t("searchTitle", { defaultValue: "Search Title" })}
className="mt-1 w-full text-sm border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("monthYear")}
{t("monthYear", { defaultValue: "Month Year" })}
</label>
<ReactDatePicker
selected={monthYearFilter}
className="mt-1 w-full text-xs border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
onChange={(date) => setMonthYearFilter(date)}
dateFormat="MM | yyyy"
placeholderText={t("selectYear")}
placeholderText={t("selectYear", { defaultValue: "Select Year" })}
showMonthYearPicker
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("date")}
{t("date", { defaultValue: "Date" })}
</label>
<div className="flex flex-row justify justify-between gap-2">
<ReactDatePicker
@ -549,7 +549,7 @@ const FilterPage = () => {
onChange={(update) => {
setDateRange(update);
}}
placeholderText={t("searchDate")}
placeholderText={t("searchDate", { defaultValue: "Search Date" })}
onCalendarClose={() => setCalenderState(!calenderState)}
/>
<div className="flex items-center">
@ -570,7 +570,7 @@ const FilterPage = () => {
<div>
<h3 className="text-sm font-medium text-gray-700 dark:text-white">
{t("categories")}
{t("categories", { defaultValue: "Categories" })}
</h3>
<ul className="mt-2 space-y-2">
{categories?.map((category: any) => (
@ -709,14 +709,14 @@ const FilterPage = () => {
<div className="w-full pr-4 lg:pr-16 pb-4">
<Reveal>
<div className="flex flex-col items-end mb-4">
<h2 className="text-lg font-semibold">{t("sortBy")} </h2>
<h2 className="text-lg font-semibold">{t("sortBy", { defaultValue: "Sort By" })} </h2>
<select
defaultValue={sortBy == "popular" ? "terpopuler" : "terbaru"}
onChange={(e) => handleSorting(e)}
className="border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
>
<option value="latest">{t("latest")}</option>
<option value="popular">{t("mostPopular")}</option>
<option value="latest">{t("latest", { defaultValue: "Latest" })}</option>
<option value="popular">{t("mostPopular", { defaultValue: "Most Popular" })}</option>
</select>
</div>

View File

@ -100,16 +100,16 @@ const ContactForm = () => {
{/* Header */}
<div className="flex items-center justify-center mb-6">
<img src="/assets/icons-contact.png" alt="contact" />
<h2 className="ml-4 text-2xl font-bold">{t("contactUs")}</h2>
<h2 className="ml-4 text-2xl font-bold">{t("contactUs", { defaultValue: "Contact Us" })}</h2>
</div>
<h3 className="text-lg font-semibold text-gray-800 dark:text-white mb-1">{t("writeMessage")}</h3>
<p className="text-sm text-gray-600 dark:text-white mb-6">{t("leaveMessage")}</p>
<h3 className="text-lg font-semibold text-gray-800 dark:text-white mb-1">{t("writeMessage", { defaultValue: "Write Message" })}</h3>
<p className="text-sm text-gray-600 dark:text-white mb-6">{t("leaveMessage", { defaultValue: "Leave Message" })}</p>
{/* Form */}
<form>
<div className="mb-4">
<label className="block text-sm font-medium text-gray-700 dark:text-white mb-1">{t("name")}</label>
<input type="text" placeholder={t("enterName")} className={`w-full p-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 ${errors.name ? "block" : ""}`} {...register("name")} required />
<label className="block text-sm font-medium text-gray-700 dark:text-white mb-1">{t("name", { defaultValue: "Name" })}</label>
<input type="text" placeholder={t("enterName", { defaultValue: "Enter Name" })} className={`w-full p-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 ${errors.name ? "block" : ""}`} {...register("name")} required />
</div>
<div className="mb-4">
@ -118,23 +118,23 @@ const ContactForm = () => {
</div>
<div className="mb-4">
<label className="block text-sm font-medium text-gray-700 dark:text-white mb-1">{t("number")} (Optional)</label>
<input type="text" placeholder={t("enterNumber")} className="w-full p-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500" />
<label className="block text-sm font-medium text-gray-700 dark:text-white mb-1">{t("number", { defaultValue: "Number" })} (Optional)</label>
<input type="text" placeholder={t("enterNumber", { defaultValue: "Enter Number" })} className="w-full p-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500" />
</div>
<div className="mb-4">
<label className="block text-sm font-medium text-gray-700 dark:text-white mb-1">{t("subject")}</label>
<label className="block text-sm font-medium text-gray-700 dark:text-white mb-1">{t("subject", { defaultValue: "Subject" })}</label>
<select
className={`w-full p-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 ${errors.subjects ? "block" : ""}`}
{...register("subjects", { onChange: (e) => handleSubjects(e) })}
defaultValue=""
>
<option value="" disabled>
{t("selectSubject")}
{t("selectSubject", { defaultValue: "Select Subject" })}
</option>
{/* <option value="1">{t("question")}</option>
<option value="2">{t("criticism")}</option>
<option value="3">{t("suggestion")}</option> */}
{/* <option value="1">{t("question", { defaultValue: "Question" })}</option>
<option value="2">{t("criticism", { defaultValue: "Criticism" })}</option>
<option value="3">{t("suggestion", { defaultValue: "Suggestion" })}</option> */}
{subjects?.map((list: any) => (
<option key={list.id} value={list.title}>
{list.title}
@ -144,12 +144,12 @@ const ContactForm = () => {
</div>
<div className="mb-4">
<label className="block text-sm font-medium text-gray-700 dark:text-white mb-1">{t("messages")}</label>
<textarea placeholder={t("writeYourMessage")} rows={4} className="w-full p-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"></textarea>
<label className="block text-sm font-medium text-gray-700 dark:text-white mb-1">{t("messages", { defaultValue: "Messages" })}</label>
<textarea placeholder={t("writeYourMessage", { defaultValue: "Write Your Message" })} rows={4} className="w-full p-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"></textarea>
</div>
<button type="submit" className="w-fit bg-blue-500 flex justify-self-end text-white p-2 px-8 rounded-md hover:bg-blue-600 transition">
{t("send")}
{t("send", { defaultValue: "Send" })}
</button>
</form>
</Reveal>

View File

@ -349,13 +349,13 @@ const Galery = (props: any) => {
Saya */}
{pathname?.split("/")[1] == "in" ? (
<>
<span className="text-black ">{t("gallery")}</span>&nbsp;
{t("my")}
<span className="text-black ">{t("gallery", { defaultValue: "Gallery" })}</span>&nbsp;
{t("my", { defaultValue: "My" })}
</>
) : (
<>
<span className="text-black">{t("my")}</span>&nbsp;
{t("gallery")}
<span className="text-black">{t("my", { defaultValue: "My" })}</span>&nbsp;
{t("gallery", { defaultValue: "Gallery" })}
</>
)}
</h1>
@ -366,7 +366,7 @@ const Galery = (props: any) => {
value="image"
className="relative text-xs md:text-xl font-bold text-black dark:text-white dark:bg-transparent before:absolute before:top-full before:left-0 before:h-px before:w-full data-[state=active]:before:bg-primary"
>
{t("image")}
{t("image", { defaultValue: "Image" })}
</TabsTrigger>
<div className="text-[#bb3523] text-lg hidden md:inline-block">
|
@ -375,7 +375,7 @@ const Galery = (props: any) => {
value="video"
className="relative text-xs md:text-xl font-bold text-black dark:text-white dark:bg-transparent before:absolute before:top-full before:left-0 before:h-px before:w-full data-[state=active]:before:bg-primary"
>
{t("video")}
{t("video", { defaultValue: "Video" })}
</TabsTrigger>
<div className="text-[#bb3523] text-lg hidden md:inline-block">
|
@ -384,7 +384,7 @@ const Galery = (props: any) => {
value="text"
className="relative text-xs md:text-xl font-bold text-black dark:text-white dark:bg-transparent before:absolute before:top-full before:left-0 before:h-px before:w-full data-[state=active]:before:bg-primary"
>
{t("text")}
{t("text", { defaultValue: "Text" })}
</TabsTrigger>
<div className="text-[#bb3523] text-lg hidden md:inline-block">
|
@ -393,7 +393,7 @@ const Galery = (props: any) => {
value="audio"
className="relative text-xs md:text-xl font-bold text-black dark:text-white dark:bg-transparent before:absolute before:top-full before:left-0 before:h-px before:w-full data-[state=active]:before:bg-primary"
>
{t("audio")}
{t("audio", { defaultValue: "Audio" })}
</TabsTrigger>
</TabsList>
</Tabs>
@ -457,7 +457,7 @@ const Galery = (props: any) => {
fontSize={25}
/>
<p className="text-base font-semibold mb-2">
{t("save")}{" "}
{t("save", { defaultValue: "Save" })}{" "}
</p>
</div>
<Link
@ -481,18 +481,18 @@ const Galery = (props: any) => {
fontSize={20}
/>
<p className="text-base font-semibold mb-1">
{t("share")}{" "}
{t("share", { defaultValue: "Share" })}{" "}
</p>
</button>
</PopoverTrigger>
<PopoverContent>
<div className="flex flex-col">
<h1 className="mb-2">
{t("shareTo")}{" "}
{t("shareTo", { defaultValue: "Share To" })}{" "}
</h1>
<div className="flex flex-col mb-2">
<p className="text-base font-semibold mb-1">
{t("destinationEmail")}
{t("destinationEmail", { defaultValue: "Destination Email" })}
</p>
<Input
value={emailShareInput}
@ -503,14 +503,14 @@ const Galery = (props: any) => {
}
onKeyPress={handleEmailList}
type="email"
placeholder={t("shareTo")}
placeholder={t("shareTo", { defaultValue: "Share To" })}
/>
</div>
<Button
className="bg-blue-500 text-white p-2 w-fit rounded-lg"
onClick={() => shareToEmail()}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</Button>
</div>
</PopoverContent>
@ -619,16 +619,16 @@ const Galery = (props: any) => {
<button className="w-full flex flex-row items-center gap-3">
<Icon icon="oi:share" fontSize={20} />
<p className="text-base font-semibold mb-1">
{t("share")}
{t("share", { defaultValue: "Share" })}
</p>
</button>
</PopoverTrigger>
<PopoverContent>
<div className="flex flex-col">
<h1 className="mb-2">{t("shareTo")}</h1>
<h1 className="mb-2">{t("shareTo", { defaultValue: "Share To" })}</h1>
<div className="flex flex-col mb-2">
<p className="text-base font-semibold mb-1">
{t("destinationEmail")}
{t("destinationEmail", { defaultValue: "Destination Email" })}
</p>
<Input
value={emailShareInput}
@ -637,14 +637,14 @@ const Galery = (props: any) => {
}
onKeyPress={handleEmailList}
type="email"
placeholder={t("pressEnter")}
placeholder={t("pressEnter", { defaultValue: "Press Enter" })}
/>
</div>
<Button
className="bg-blue-500 text-white p-2 w-fit rounded-lg"
onClick={() => shareToEmail()}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</Button>
</div>
</PopoverContent>
@ -656,7 +656,7 @@ const Galery = (props: any) => {
>
<Icon icon="iconamoon:trash" fontSize={25} />
<p className="text-base font-semibold mb-2">
{t("delete")}
{t("delete", { defaultValue: "Delete" })}
</p>
</div>
</PopoverContent>
@ -732,7 +732,7 @@ const Galery = (props: any) => {
fontSize={25}
/>
<p className="text-base font-semibold mb-2">
{t("save")}{" "}
{t("save", { defaultValue: "Save" })}{" "}
</p>
</div>
<Link
@ -756,18 +756,18 @@ const Galery = (props: any) => {
fontSize={20}
/>
<p className="text-base font-semibold mb-1">
{t("share")}{" "}
{t("share", { defaultValue: "Share" })}{" "}
</p>
</button>
</PopoverTrigger>
<PopoverContent>
<div className="flex flex-col">
<h1 className="mb-2">
{t("shareTo")}{" "}
{t("shareTo", { defaultValue: "Share To" })}{" "}
</h1>
<div className="flex flex-col mb-2">
<p className="text-base font-semibold mb-1">
{t("destinationEmail")}
{t("destinationEmail", { defaultValue: "Destination Email" })}
</p>
<Input
value={emailShareInput}
@ -778,14 +778,14 @@ const Galery = (props: any) => {
}
onKeyPress={handleEmailList}
type="email"
placeholder={t("shareTo")}
placeholder={t("shareTo", { defaultValue: "Share To" })}
/>
</div>
<Button
className="bg-blue-500 text-white p-2 w-fit rounded-lg"
onClick={() => shareToEmail()}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</Button>
</div>
</PopoverContent>
@ -854,7 +854,7 @@ const Galery = (props: any) => {
d="M224 30v256h-64l96 128l96-128h-64V30zM32 434v48h448v-48z"
/>
</svg>
Download {t("document")}
Download {t("document", { defaultValue: "Document" })}
</div>
</div>
<Popover>
@ -878,16 +878,16 @@ const Galery = (props: any) => {
<button className="w-full flex flex-row items-center gap-3">
<Icon icon="oi:share" fontSize={20} />
<p className="text-base font-semibold mb-1">
{t("share")}
{t("share", { defaultValue: "Share" })}
</p>
</button>
</PopoverTrigger>
<PopoverContent>
<div className="flex flex-col">
<h1 className="mb-2">{t("shareTo")}</h1>
<h1 className="mb-2">{t("shareTo", { defaultValue: "Share To" })}</h1>
<div className="flex flex-col mb-2">
<p className="text-base font-semibold mb-1">
{t("destinationEmail")}
{t("destinationEmail", { defaultValue: "Destination Email" })}
</p>
<Input
value={emailShareInput}
@ -896,14 +896,14 @@ const Galery = (props: any) => {
}
onKeyPress={handleEmailList}
type="email"
placeholder={t("pressEnter")}
placeholder={t("pressEnter", { defaultValue: "Press Enter" })}
/>
</div>
<Button
className="bg-blue-500 text-white p-2 w-fit rounded-lg"
onClick={() => shareToEmail()}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</Button>
</div>
</PopoverContent>
@ -915,7 +915,7 @@ const Galery = (props: any) => {
>
<Icon icon="iconamoon:trash" fontSize={25} />
<p className="text-base font-semibold mb-2">
{t("delete")}
{t("delete", { defaultValue: "Delete" })}
</p>
</div>
</PopoverContent>

View File

@ -290,7 +290,7 @@ const Galery = (props: any) => {
<div className="flex flex-col mt-4">
<div className="mx-auto w-full max-w-7xl justify-start flex flex-col gap-5 mb-4">
<h1 className="text-2xl w-fit font-bold bg-[#bb3523] px-4 py-1 rounded-lg text-center text-white">
<span className="text-black">{t("gallery")} </span>
<span className="text-black">{t("gallery", { defaultValue: "Gallery" })} </span>
{profile?.institute?.name}
</h1>
<Tabs value={selectedTab} onValueChange={setSelectedTab}>
@ -299,28 +299,28 @@ const Galery = (props: any) => {
value="image"
className="relative text-xs md:text-xl font-bold text-black dark:text-white dark:bg-transparent before:absolute before:top-full before:left-0 before:h-px before:w-full data-[state=active]:before:bg-primary"
>
{t("image")}
{t("image", { defaultValue: "Image" })}
</TabsTrigger>
<div className="text-[#bb3523] text-lg hidden md:inline-block">|</div>
<TabsTrigger
value="video"
className="relative text-xs md:text-xl font-bold text-black dark:text-white dark:bg-transparent before:absolute before:top-full before:left-0 before:h-px before:w-full data-[state=active]:before:bg-primary"
>
{t("video")}
{t("video", { defaultValue: "Video" })}
</TabsTrigger>
<div className="text-[#bb3523] text-lg hidden md:inline-block">|</div>
<TabsTrigger
value="text"
className="relative text-xs md:text-xl font-bold text-black dark:text-white dark:bg-transparent before:absolute before:top-full before:left-0 before:h-px before:w-full data-[state=active]:before:bg-primary"
>
{t("text")}
{t("text", { defaultValue: "Text" })}
</TabsTrigger>
<div className="text-[#bb3523] text-lg hidden md:inline-block">|</div>
<TabsTrigger
value="audio"
className="relative text-xs md:text-xl font-bold text-black dark:text-white dark:bg-transparent before:absolute before:top-full before:left-0 before:h-px before:w-full data-[state=active]:before:bg-primary"
>
{t("audio")}
{t("audio", { defaultValue: "Audio" })}
</TabsTrigger>
</TabsList>
</Tabs>
@ -351,7 +351,7 @@ const Galery = (props: any) => {
<PopoverContent className="w-52">
<div onClick={() => handleSaveWishlist(video?.mediaUpload?.id)} className="cursor-pointer flex flex-row gap-2 hover:text-red-800">
<Icon icon="material-symbols:bookmark-outline" fontSize={25} />
<p className="text-base font-semibold mb-2">{t("save")} </p>
<p className="text-base font-semibold mb-2">{t("save", { defaultValue: "Save" })} </p>
</div>
<Link href={`/content-management/rewrite/create/${video?.mediaUpload?.id}`} className="flex flex-row hover:text-red-800 gap-2">
<Icon icon="jam:write" fontSize={25} />
@ -362,18 +362,18 @@ const Galery = (props: any) => {
<PopoverTrigger asChild>
<button className="w-full flex flex-row items-center gap-3">
<Icon icon="oi:share" fontSize={20} />
<p className="text-base font-semibold mb-1">{t("share")} </p>
<p className="text-base font-semibold mb-1">{t("share", { defaultValue: "Share" })} </p>
</button>
</PopoverTrigger>
<PopoverContent>
<div className="flex flex-col">
<h1 className="mb-2">{t("shareTo")} </h1>
<h1 className="mb-2">{t("shareTo", { defaultValue: "Share To" })} </h1>
<div className="flex flex-col mb-2">
<p className="text-base font-semibold mb-1">{t("destinationEmail")}</p>
<Input value={emailShareInput} onChange={(event) => setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder={t("shareTo")} />
<p className="text-base font-semibold mb-1">{t("destinationEmail", { defaultValue: "Destination Email" })}</p>
<Input value={emailShareInput} onChange={(event) => setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder={t("shareTo", { defaultValue: "Share To" })} />
</div>
<Button className="bg-blue-500 text-white p-2 w-fit rounded-lg" onClick={() => shareToEmail()}>
{t("send")}
{t("send", { defaultValue: "Send" })}
</Button>
</div>
</PopoverContent>
@ -435,7 +435,7 @@ const Galery = (props: any) => {
<PopoverContent className="w-52">
<div onClick={() => handleSaveWishlist(audio?.mediaUpload?.id)} className="cursor-pointer flex flex-row gap-2 hover:text-red-800">
<Icon icon="material-symbols:bookmark-outline" fontSize={25} />
<p className="text-base font-semibold mb-2">{t("save")}</p>
<p className="text-base font-semibold mb-2">{t("save", { defaultValue: "Save" })}</p>
</div>
<Link href={`/content-management/rewrite/create/${audio?.mediaUpload?.id}`} className="flex flex-row hover:text-red-800 gap-2">
<Icon icon="jam:write" fontSize={25} />
@ -446,18 +446,18 @@ const Galery = (props: any) => {
<PopoverTrigger asChild>
<button className="w-full flex items-center gap-2">
<Icon icon="oi:share" fontSize={20} />
<p className="text-base font-semibold mb-2">{t("share")}</p>
<p className="text-base font-semibold mb-2">{t("share", { defaultValue: "Share" })}</p>
</button>
</PopoverTrigger>
<PopoverContent>
<div className="flex flex-col">
<h1 className="mb-2">{t("shareTo")}</h1>
<h1 className="mb-2">{t("shareTo", { defaultValue: "Share To" })}</h1>
<div className="flex flex-col mb-2">
<p className="text-base font-semibold mb-1">{t("destinationEmail")}</p>
<Input value={emailShareInput} onChange={(event) => setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder={t("pressEnter")} />
<p className="text-base font-semibold mb-1">{t("destinationEmail", { defaultValue: "Destination Email" })}</p>
<Input value={emailShareInput} onChange={(event) => setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder={t("pressEnter", { defaultValue: "Press Enter" })} />
</div>
<Button className="bg-blue-500 text-white p-2 w-fit rounded-lg" onClick={() => shareToEmail()}>
{t("send")}
{t("send", { defaultValue: "Send" })}
</Button>
</div>
</PopoverContent>
@ -497,7 +497,7 @@ const Galery = (props: any) => {
<PopoverContent className="w-52">
<div onClick={() => handleSaveWishlist(image?.mediaUpload?.id)} className="cursor-pointer flex flex-row gap-2 hover:text-red-800">
<Icon icon="material-symbols:bookmark-outline" fontSize={25} />
<p className="text-base font-semibold mb-2">{t("save")}</p>
<p className="text-base font-semibold mb-2">{t("save", { defaultValue: "Save" })}</p>
</div>
<Link href={`/content-management/rewrite/create/${image?.mediaUpload?.id}`} className="flex flex-row hover:text-red-800 gap-2">
<Icon icon="jam:write" fontSize={25} />
@ -508,18 +508,18 @@ const Galery = (props: any) => {
<PopoverTrigger asChild>
<button className="w-full flex flex-row items-center gap-3">
<Icon icon="oi:share" fontSize={20} />
<p className="text-base font-semibold mb-1"> {t("share")}</p>
<p className="text-base font-semibold mb-1"> {t("share", { defaultValue: "Share" })}</p>
</button>
</PopoverTrigger>
<PopoverContent>
<div className="flex flex-col">
<h1 className="mb-2">{t("shareTo")}</h1>
<h1 className="mb-2">{t("shareTo", { defaultValue: "Share To" })}</h1>
<div className="flex flex-col mb-2">
<p className="text-base font-semibold mb-1">{t("destinationEmail")}</p>
<Input value={emailShareInput} onChange={(event) => setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder={t("pressEnter")} />
<p className="text-base font-semibold mb-1">{t("destinationEmail", { defaultValue: "Destination Email" })}</p>
<Input value={emailShareInput} onChange={(event) => setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder={t("pressEnter", { defaultValue: "Press Enter" })} />
</div>
<Button className="bg-blue-500 text-white p-2 w-fit rounded-lg" onClick={() => shareToEmail()}>
{t("send")}
{t("send", { defaultValue: "Send" })}
</Button>
</div>
</PopoverContent>
@ -562,7 +562,7 @@ const Galery = (props: any) => {
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 512 512">
<path fill="#f00" d="M224 30v256h-64l96 128l96-128h-64V30zM32 434v48h448v-48z" />
</svg>
Download {t("document")}
Download {t("document", { defaultValue: "Document" })}
</div>
</div>
<Popover>
@ -574,7 +574,7 @@ const Galery = (props: any) => {
<PopoverContent className="w-52">
<div onClick={() => handleSaveWishlist(document?.mediaUpload?.id)} className="cursor-pointer flex flex-row gap-2 hover:text-red-800">
<Icon icon="material-symbols:bookmark-outline" fontSize={25} />
<p className="text-base font-semibold mb-2">{t("save")}</p>
<p className="text-base font-semibold mb-2">{t("save", { defaultValue: "Save" })}</p>
</div>
<Link href={`/content-management/rewrite/create/${document?.mediaUpload?.id}`} className="flex flex-row hover:text-red-800 gap-2">
<Icon icon="jam:write" fontSize={25} />
@ -585,18 +585,18 @@ const Galery = (props: any) => {
<PopoverTrigger asChild>
<button className="w-full flex items-center gap-2">
<Icon icon="oi:share" fontSize={20} />
<p className="text-base font-semibold mb-2">{t("share")}</p>
<p className="text-base font-semibold mb-2">{t("share", { defaultValue: "Share" })}</p>
</button>
</PopoverTrigger>
<PopoverContent>
<div className="flex flex-col">
<h1 className="mb-2">{t("shareTo")}</h1>
<h1 className="mb-2">{t("shareTo", { defaultValue: "Share To" })}</h1>
<div className="flex flex-col mb-2">
<p className="text-base font-semibold mb-1">{t("destinationEmail")}</p>
<Input value={emailShareInput} onChange={(event) => setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder={t("pressEnter")} />
<p className="text-base font-semibold mb-1">{t("destinationEmail", { defaultValue: "Destination Email" })}</p>
<Input value={emailShareInput} onChange={(event) => setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder={t("pressEnter", { defaultValue: "Press Enter" })} />
</div>
<Button className="bg-blue-500 text-white p-2 w-fit rounded-lg" onClick={() => shareToEmail()}>
{t("send")}
{t("send", { defaultValue: "Send" })}
</Button>
</div>
</PopoverContent>

View File

@ -323,24 +323,24 @@ const page = (props: any) => {
<SidebarManagement />
<div className="w-full lg:w-2/3 p-8 lg:p-12">
<div className="flex flex-col">
<div className="text-xl font-bold mb-5">{t("content")} Rewrite</div>
<div className="text-xl font-bold mb-5">{t("content", { defaultValue: "Content" })} Rewrite</div>
<div className="p-8 border border-black rounded-lg">
<form method="POST" onSubmit={handleSubmit(onSubmit)}>
{content && (
<div className="flex flex-col gap-2 ">
<div className="flex flex-col lg:flex-row gap-2">
<div className="gap-1 flex flex-col mb-3">
<p className="font-semibold">{t("language")}</p>
<p className="font-semibold">{t("language", { defaultValue: "Language" })}</p>
<Select
value={selectedLanguage}
onValueChange={setSelectedLanguage}
>
<SelectTrigger className="w-full lg:w-[180px]">
<SelectValue placeholder={t("selectLanguage")} />
<SelectValue placeholder={t("selectLanguage", { defaultValue: "Select Language" })} />
</SelectTrigger>
<SelectContent>
<SelectGroup>
<SelectLabel>{t("selectLanguage")}</SelectLabel>
<SelectLabel>{t("selectLanguage", { defaultValue: "Select Language" })}</SelectLabel>
<SelectItem value="id">Indonesia</SelectItem>
<SelectItem value="en">English</SelectItem>
</SelectGroup>
@ -348,23 +348,23 @@ const page = (props: any) => {
</Select>
</div>
<div className="gap-1 flex flex-col mb-3">
<p className="font-semibold">{t("contextType")}</p>
<p className="font-semibold">{t("contextType", { defaultValue: "Context Type" })}</p>
<Select
value={selectedContextType}
onValueChange={setSelectedContextType}
>
<SelectTrigger className="w-full lg:w-[180px]">
<SelectValue placeholder={t("selectContext")} />
<SelectValue placeholder={t("selectContext", { defaultValue: "Select Context" })} />
</SelectTrigger>
<SelectContent>
<SelectGroup>
<SelectLabel>{t("selectContext")}</SelectLabel>
<SelectItem value="text">{t("text")}</SelectItem>
<SelectLabel>{t("selectContext", { defaultValue: "Select Context" })}</SelectLabel>
<SelectItem value="text">{t("text", { defaultValue: "Text" })}</SelectItem>
<SelectItem value="article">
{t("article")}
{t("article", { defaultValue: "Article" })}
</SelectItem>
<SelectItem value="transcript">
{t("transcript")}
{t("transcript", { defaultValue: "Transcript" })}
</SelectItem>
<SelectItem value="url">URL</SelectItem>
</SelectGroup>
@ -372,17 +372,17 @@ const page = (props: any) => {
</Select>
</div>
<div className="gap-1 flex flex-col mb-3">
<p className="font-semibold">{t("writingStyle")}</p>
<p className="font-semibold">{t("writingStyle", { defaultValue: "Writing Style" })}</p>
<Select
value={selectedWritingStyle}
onValueChange={setSelectedWritingStyle}
>
<SelectTrigger className="w-full lg:w-[180px]">
<SelectValue placeholder={t("selectWriting")} />
<SelectValue placeholder={t("selectWriting", { defaultValue: "Select Writing" })} />
</SelectTrigger>
<SelectContent>
<SelectGroup>
<SelectLabel>{t("selectWriting")}</SelectLabel>
<SelectLabel>{t("selectWriting", { defaultValue: "Select Writing" })}</SelectLabel>
<SelectItem value="firendly">Friendly</SelectItem>
<SelectItem value="profesional">
Profesional
@ -397,17 +397,17 @@ const page = (props: any) => {
</Select>
</div>
<div className="gap-1 flex flex-col mb-3">
<p className="font-semibold">{t("articleSize")}</p>
<p className="font-semibold">{t("articleSize", { defaultValue: "Article Size" })}</p>
<Select
value={selectedSize}
onValueChange={setSelectedSize}
>
<SelectTrigger className="w-full lg:w-[180px]">
<SelectValue placeholder={t("selectSize")} />
<SelectValue placeholder={t("selectSize", { defaultValue: "Select Size" })} />
</SelectTrigger>
<SelectContent>
<SelectGroup>
<SelectLabel>{t("selectSize")}</SelectLabel>
<SelectLabel>{t("selectSize", { defaultValue: "Select Size" })}</SelectLabel>
<SelectItem value="news">
News (300 - 900 words)
</SelectItem>
@ -423,7 +423,7 @@ const page = (props: any) => {
</div>
</div>
<div className="mb-3">
<p className="font-semibold">{t("title")}</p>
<p className="font-semibold">{t("title", { defaultValue: "Title" })}</p>
<Controller
control={control}
name="title"
@ -442,7 +442,7 @@ const page = (props: any) => {
/>
</div>
<div className="mb-3">
<p className="font-semibold">{t("mainKeyword")}</p>
<p className="font-semibold">{t("mainKeyword", { defaultValue: "Main Keyword" })}</p>
<Controller
control={control}
name="mainKeyword"
@ -511,7 +511,7 @@ const page = (props: any) => {
</div>
<div className=" mb-3">
<p className="font-semibold">{t("newDescription")}</p>
<p className="font-semibold">{t("newDescription", { defaultValue: "New Description" })}</p>
<Controller
control={control}
name="description"
@ -546,13 +546,13 @@ const page = (props: any) => {
}}
className="border border-blue-400 hover:bg-blue-400 hover:text-white text-blue-400 text-sm lg:text-base"
>
{t("back")}
{t("back", { defaultValue: "Back" })}
</Button>
<Button
type="submit"
className="border border-blue-500 bg-blue-500 text-sm lg:text-base text-white"
>
{t("save")}
{t("save", { defaultValue: "Save" })}
</Button>
</div>
</div>

View File

@ -219,8 +219,8 @@ const page = () => {
<SidebarManagement />
<div className="w-full lg:w-2/3 p-8 lg:p-14">
<h1 className="text-2xl w-fit font-bold bg-[#bb3523] px-4 py-1 rounded-lg text-center text-white mb-4">
<span className="text-black">{t("gallery")} </span>
{t("content")} Rewrite
<span className="text-black">{t("gallery", { defaultValue: "Gallery" })} </span>
{t("content", { defaultValue: "Content" })} Rewrite
</h1>
<div className="">
{contentImage?.length > 0 ? (
@ -279,7 +279,7 @@ const page = () => {
fontSize={25}
/>
<p className="text-base font-semibold mb-2">
{t("save")}
{t("save", { defaultValue: "Save" })}
</p>
</div> */}
{/* <Link
@ -301,18 +301,18 @@ const page = () => {
/>
<p className="text-base font-semibold mb-1">
{" "}
{t("share")}
{t("share", { defaultValue: "Share" })}
</p>
</button>
</PopoverTrigger>
<PopoverContent>
<div className="flex flex-col">
<h1 className="mb-2">
{t("shareTo")}
{t("shareTo", { defaultValue: "Share To" })}
</h1>
<div className="flex flex-col mb-2">
<p className="text-base font-semibold mb-1">
{t("destinationEmail")}
{t("destinationEmail", { defaultValue: "Destination Email" })}
</p>
<Input
value={emailShareInput}
@ -323,14 +323,14 @@ const page = () => {
}
onKeyPress={handleEmailList}
type="email"
placeholder={t("pressEnter")}
placeholder={t("pressEnter", { defaultValue: "Press Enter" })}
/>
</div>
<Button
className="bg-blue-500 text-white p-2 w-fit rounded-lg"
onClick={() => shareToEmail()}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</Button>
</div>
</PopoverContent>
@ -349,7 +349,7 @@ const page = () => {
fontSize={25}
/>
<p className="text-base font-semibold mb-2">
{t("delete")}
{t("delete", { defaultValue: "Delete" })}
</p>
</div>
</PopoverContent>

View File

@ -120,11 +120,11 @@ const page = () => {
<div className="w-2/3 p-12">
<div className="flex flex-col">
<p className="text-2xl w-fit font-bold bg-[#bb3523] px-4 py-1 rounded-lg text-center text-white my-4 ">
<span className="text-black">{t("team")} </span>
<span className="text-black">{t("team", { defaultValue: "Team" })} </span>
{profile?.institute?.name}
</p>
<p className="text-base mb-3">
{user?.length} {t("teamMembers")} {profile?.institute?.name}
{user?.length} {t("teamMembers", { defaultValue: "Team Members" })} {profile?.institute?.name}
</p>
</div>
<div className="flex flex-row gap-5">
@ -164,7 +164,7 @@ const page = () => {
</div>
<div className="border-b border-black w-full"></div>
<div className="flex flex-col">
<h1 className="text-red-600 mb-2">{t("reasonReport")}</h1>
<h1 className="text-red-600 mb-2">{t("reasonReport", { defaultValue: "Reason Report" })}</h1>
<textarea id="formControlTextarea1" rows={4} className="border border-black font-light" onChange={(e: any) => setReportMessage(e.target.value)} />
</div>
</div>
@ -172,17 +172,17 @@ const page = () => {
<Dialog>
<DialogTrigger asChild>
<Button className="bg-red-500 text-white" type="submit">
{t("send")}
{t("send", { defaultValue: "Send" })}
</Button>
</DialogTrigger>
<DialogContent>
<h1>{t("saveData")}</h1>
<h1>{t("saveData", { defaultValue: "Save Data" })}</h1>
<DialogFooter>
<DialogClose>
<Button onClick={save}>{t("save")}</Button>
<Button onClick={save}>{t("save", { defaultValue: "Save" })}</Button>
</DialogClose>
<DialogClose>
<Button>{t("cancel")}</Button>
<Button>{t("cancel", { defaultValue: "Cancel" })}</Button>
</DialogClose>
</DialogFooter>
</DialogContent>

View File

@ -504,10 +504,10 @@ const FilterPage = () => {
<div className="flex flex-col md:flex-row items-start gap-5 py-10 px-4 lg:px-20 bg-[#f7f7f7] dark:bg-black">
<p>
{" "}
{t("text")} {">"} <span className="font-bold">{t("allText")}</span>
{t("text", { defaultValue: "Text" })} {">"} <span className="font-bold">{t("allText", { defaultValue: "All Text" })}</span>
</p>
<p className="font-bold">|</p>
<p>{`${t("thereIs")} ${totalContent} ${t("downloadableText")}`}</p>
<p>{`${t("thereIs", { defaultValue: "There Is" })} ${totalContent} ${t("downloadableText", { defaultValue: "Downloadable Text" })}`}</p>
</div>
{/* Left */}
@ -524,7 +524,7 @@ const FilterPage = () => {
htmlFor="search"
className="block text-sm font-medium text-gray-700 dark:text-white"
>
{t("search")}
{t("search", { defaultValue: "Search" })}
</label>
<Input
value={searchTitle}
@ -533,28 +533,28 @@ const FilterPage = () => {
onKeyDown={handleKeyDown}
type="text"
id="search"
placeholder={t("searchTitle")}
placeholder={t("searchTitle", { defaultValue: "Search Title" })}
className="mt-1 w-full border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("monthYear")}
{t("monthYear", { defaultValue: "Month Year" })}
</label>
<ReactDatePicker
selected={monthYearFilter}
className="mt-1 w-full text-xs border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
onChange={(date) => setMonthYearFilter(date)}
dateFormat="MM | yyyy"
placeholderText={t("selectYear")}
placeholderText={t("selectYear", { defaultValue: "Select Year" })}
showMonthYearPicker
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("date")}
{t("date", { defaultValue: "Date" })}
</label>
<div className="flex flex-row justify justify-between gap-2">
<ReactDatePicker
@ -565,7 +565,7 @@ const FilterPage = () => {
onChange={(update) => {
setDateRange(update);
}}
placeholderText={t("selectDate")}
placeholderText={t("selectDate", { defaultValue: "Select Date" })}
onCalendarClose={() => setCalenderState(!calenderState)}
/>
<div className="flex items-center">
@ -586,7 +586,7 @@ const FilterPage = () => {
<div>
<h3 className="text-sm font-medium text-gray-700 dark:text-white">
{t("categories")}
{t("categories", { defaultValue: "Categories" })}
</h3>
<ul className="mt-2 space-y-2">
{categories.map((category: any) => (
@ -771,14 +771,14 @@ const FilterPage = () => {
<Reveal>
<div className="flex-1">
<div className="flex flex-col items-end mb-4">
<h2 className="text-lg font-semibold">{t("sortBy")}</h2>
<h2 className="text-lg font-semibold">{t("sortBy", { defaultValue: "Sort By" })}</h2>
<select
defaultValue={sortBy == "popular" ? "terpopuler" : "terbaru"}
onChange={(e) => handleSorting(e)}
className="border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
>
<option value="latest">{t("latest")}</option>
<option value="popular">{t("mostPopular")}</option>
<option value="latest">{t("latest", { defaultValue: "Latest" })}</option>
<option value="popular">{t("mostPopular", { defaultValue: "Most Popular" })}</option>
</select>
</div>

View File

@ -13,20 +13,20 @@ const FAQS: React.FC = () => {
const faqs: FAQItem[] = [
{
question: t("question1"),
answer: t("answer1"),
question: t("question1", { defaultValue: "Question1" }),
answer: t("answer1", { defaultValue: "Answer1" }),
},
{
question: t("question2"),
answer: t("answer2"),
question: t("question2", { defaultValue: "Question2" }),
answer: t("answer2", { defaultValue: "Answer2" }),
},
{
question: t("question3"),
answer: t("answer3"),
question: t("question3", { defaultValue: "Question3" }),
answer: t("answer3", { defaultValue: "Answer3" }),
},
{
question: t("question4"),
answer: t("answer4"),
question: t("question4", { defaultValue: "Question4" }),
answer: t("answer4", { defaultValue: "Answer4" }),
},
];

View File

@ -120,16 +120,16 @@ const FeedbackForm: React.FC = () => {
<div className="max-w-6xl flex flex-col mx-auto p-4 lg:p-40 gap-5 ">
<div className="flex items-center justify-center mb-6">
<img src="/assets/icons-feedback.png" alt="Feedback" />
<h2 className="ml-4 text-[15px] lg:text-[32px] font-bold text-gray-800 dark:text-white">{t("userFeedback")}</h2>
<h2 className="ml-4 text-[15px] lg:text-[32px] font-bold text-gray-800 dark:text-white">{t("userFeedback", { defaultValue: "User Feedback" })}</h2>
</div>
<div className="text-black dark:text-white">
<Rating label={t("ratings")} onRate={(rating) => handleRatingChange("accessibility", rating)} />
<Rating label={t("ratings2")} onRate={(rating) => handleRatingChange("appearance", rating)} />
<Rating label={t("ratings3")} onRate={(rating) => handleRatingChange("content", rating)} />
<Rating label={t("ratings", { defaultValue: "Ratings" })} onRate={(rating) => handleRatingChange("accessibility", rating)} />
<Rating label={t("ratings2", { defaultValue: "Ratings2" })} onRate={(rating) => handleRatingChange("appearance", rating)} />
<Rating label={t("ratings3", { defaultValue: "Ratings3" })} onRate={(rating) => handleRatingChange("content", rating)} />
</div>
<div className="flex justify-center">
<button onClick={handleSubmit} className="w-fit lg:w-32 bg-[#2F80ED] text-white py-2 px-4 gap-4 rounded-md hover:bg-blue-600 transition text-sm lg:text-base">
{t("send")}
{t("send", { defaultValue: "Send" })}
</button>
</div>
</div>

View File

@ -509,13 +509,13 @@ const FilterPage = () => {
{/* Header */}
<div className="flex flex-row md:flex-row items-start gap-3 py-10 px-4 lg:px-20 bg-[#f7f7f7] dark:bg-black">
<p> {t("image")}</p>
<p> {t("image", { defaultValue: "Image" })}</p>
{">"}
<p>
<span className="font-bold">{t("allImage")}</span>
<span className="font-bold">{t("allImage", { defaultValue: "All Image" })}</span>
</p>
<p className="font-bold">|</p>
<p>{`${t("thereIs")} ${totalContent} ${t("downloadableImage")}`}</p>
<p>{`${t("thereIs", { defaultValue: "There Is" })} ${totalContent} ${t("downloadableImage", { defaultValue: "Downloadable Image" })}`}</p>
</div>
{/* Left */}
@ -542,7 +542,7 @@ const FilterPage = () => {
htmlFor="search"
className="block text-sm font-medium text-gray-700 dark:text-white"
>
{t("search")}
{t("search", { defaultValue: "Search" })}
</label>
<Input
value={searchTitle}
@ -551,28 +551,28 @@ const FilterPage = () => {
onKeyDown={handleKeyDown}
type="text"
id="search"
placeholder={t("searchTitle")}
placeholder={t("searchTitle", { defaultValue: "Search Title" })}
className="mt-1 w-full border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("monthYear")}
{t("monthYear", { defaultValue: "Month Year" })}
</label>
<ReactDatePicker
selected={monthYearFilter}
className="mt-1 w-full text-xs border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
onChange={(date) => setMonthYearFilter(date)}
dateFormat="MM | yyyy"
placeholderText={t("selectYear")}
placeholderText={t("selectYear", { defaultValue: "Select Year" })}
showMonthYearPicker
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("date")}
{t("date", { defaultValue: "Date" })}
</label>
<div className="flex flex-row justify justify-between gap-2">
<ReactDatePicker
@ -583,7 +583,7 @@ const FilterPage = () => {
onChange={(update) => {
setDateRange(update);
}}
placeholderText={t("selectDate")}
placeholderText={t("selectDate", { defaultValue: "Select Date" })}
onCalendarClose={() => setCalenderState(!calenderState)}
/>
<div className="flex items-center">
@ -604,7 +604,7 @@ const FilterPage = () => {
<div>
<h3 className="text-sm font-medium text-gray-700 dark:text-white">
{t("categories")}
{t("categories", { defaultValue: "Categories" })}
</h3>
<ul className="mt-2 space-y-2">
{categories.map((category: any) => (
@ -762,14 +762,14 @@ const FilterPage = () => {
<Reveal>
<div className="w-full">
<div className="flex flex-col items-end mb-4">
<h2 className="text-lg font-semibold">{t("sortBy")}</h2>
<h2 className="text-lg font-semibold">{t("sortBy", { defaultValue: "Sort By" })}</h2>
<select
defaultValue={sortBy == "popular" ? "terpopuler" : "terbaru"}
onChange={(e) => handleSorting(e)}
className="border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
>
<option value="latest">{t("latest")}</option>
<option value="popular">{t("mostPopular")}</option>
<option value="latest">{t("latest", { defaultValue: "Latest" })}</option>
<option value="popular">{t("mostPopular", { defaultValue: "Most Popular" })}</option>
</select>
</div>

View File

@ -55,20 +55,20 @@ const InboxSection = () => {
<path d="M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11s11-4.925 11-11S18.075 1 12 1M3 12c0 2.09.713 4.014 1.908 5.542A8.99 8.99 0 0 1 12.065 14a8.98 8.98 0 0 1 7.092 3.458A9 9 0 1 0 3 12m9 9a8.96 8.96 0 0 1-5.672-2.012A6.99 6.99 0 0 1 12.065 16a6.99 6.99 0 0 1 5.689 2.92A8.96 8.96 0 0 1 12 21" />
</g>
</svg>{" "}
<h2 className="ml-4 text-[15px] lg:text-[32px] font-semibold text-gray-800">{t("inbox")}</h2>
<h2 className="ml-4 text-[15px] lg:text-[32px] font-semibold text-gray-800">{t("inbox", { defaultValue: "Inbox" })}</h2>
</div>
<div className="flex flex-col justify-center items-center gap-3">
<div className="flex justify-center">
<div className="flex flex-row gap-10 items-center justify-center">
<div className="">
<p className="bg-[#bb3523] py-1 px-3 rounded-full">{t("inbox")}</p>
<p className="bg-[#bb3523] py-1 px-3 rounded-full">{t("inbox", { defaultValue: "Inbox" })}</p>
</div>
<Link href={`/inbox/update`}>{t("update")}</Link>
<Link href={`/inbox/update`}>{t("update", { defaultValue: "Update" })}</Link>
</div>
</div>
<div className="py-10 px-8 w-[400px] mt-3 border border-black rounded-lg flex flex-col">
<h1 className="mb-3 text-lg font-semibold">{t("notifList")}</h1>
<h1 className="mb-3 text-lg font-semibold">{t("notifList", { defaultValue: "Notif List" })}</h1>
<div className="hover:bg-slate-200 rounded-md">
{notifications?.map((list: any) => (
<a className="flex flex-row items-center ml-1" href={"/" + list.redirectUrl}>

View File

@ -50,20 +50,20 @@ const UpdateSection = () => {
<path d="M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11s11-4.925 11-11S18.075 1 12 1M3 12c0 2.09.713 4.014 1.908 5.542A8.99 8.99 0 0 1 12.065 14a8.98 8.98 0 0 1 7.092 3.458A9 9 0 1 0 3 12m9 9a8.96 8.96 0 0 1-5.672-2.012A6.99 6.99 0 0 1 12.065 16a6.99 6.99 0 0 1 5.689 2.92A8.96 8.96 0 0 1 12 21" />
</g>
</svg>{" "}
<h2 className="ml-4 text-[15px] lg:text-[32px] font-semibold text-gray-800">{t("update")}</h2>
<h2 className="ml-4 text-[15px] lg:text-[32px] font-semibold text-gray-800">{t("update", { defaultValue: "Update" })}</h2>
</div>
<div className="flex flex-col items-center gap-3">
<div className="flex justify-center">
<div className="flex flex-row gap-10 items-center justify-center">
<div>
<Link href={`/inbox`}>{t("inbox")}</Link>
<Link href={`/inbox`}>{t("inbox", { defaultValue: "Inbox" })}</Link>
</div>
<div className="bg-[#bb3523] py-1 px-3 rounded-full">{t("update")}</div>
<div className="bg-[#bb3523] py-1 px-3 rounded-full">{t("update", { defaultValue: "Update" })}</div>
</div>
</div>
<div className="py-10 px-8 w-[400px] mt-3 border border-black rounded-lg flex flex-col">
<h1 className="mb-3 text-lg font-semibold">{t("notifList")}</h1>
<h1 className="mb-3 text-lg font-semibold">{t("notifList", { defaultValue: "Notif List" })}</h1>
<div className="rounded-md overflow-y-auto space-y-3">
{notifications?.map((list: any) => (
<a className="flex flex-row items-center ml-1" href={"/" + list.redirectUrl}>

View File

@ -215,11 +215,11 @@ const IndeksDetail = () => {
<div className="text-gray-500 flex border-t mt-4">
<div className="flex mt-2">
<p className="text-xs lg:text-sm mb-2 ">
{t("by")}&nbsp;
{t("by", { defaultValue: "By" })}&nbsp;
<span className="font-semibold text-gray-500">
{indeksData?.uploaderName}
</span>
&nbsp; | &nbsp;{t("updatedOn")} {indeksData?.createdAt} WIB
&nbsp; | &nbsp;{t("updatedOn", { defaultValue: "Updated On" })} {indeksData?.createdAt} WIB
&nbsp;
</p>
</div>
@ -240,7 +240,7 @@ const IndeksDetail = () => {
<div className="flex flex-col py-5 p-0 lg:p-10 bg-[#f7f7f7] dark:bg-slate-600">
<div className="gap-5 flex flex-col px-4 lg:px-[300px]">
<p className="flex items-start text-bases lg:text-lg">
{t("comment")}
{t("comment", { defaultValue: "Comment" })}
</p>
<Textarea
placeholder="Type your comments here."
@ -252,7 +252,7 @@ const IndeksDetail = () => {
className="flex items-start bg-[#bb3523] text-white rounded-lg text-sm lg:text-base w-fit px-3 lg:px-4 py-1"
onClick={() => postData()}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</button>
</div>
@ -298,7 +298,7 @@ const IndeksDetail = () => {
className="text-xs lg:text-sm mr-2 bg-blue-500 text-white py-1 px-2 hover:bg-blue-300 hover:text-black rounded-md"
onClick={() => showInput(`comment-id-${data.id}`)}
>
{t("reply")}
{t("reply", { defaultValue: "Reply" })}
</a>
<a
href="javascript:void(0)"
@ -312,7 +312,7 @@ const IndeksDetail = () => {
className="text-xs lg:text-sm bg-red-500 text-white py-1 px-2 hover:bg-red-300 hover:text-black rounded-md"
onClick={() => deleteData(data.id)}
>
{t("delete")}
{t("delete", { defaultValue: "Delete" })}
</a>
</div>
</div>
@ -325,14 +325,14 @@ const IndeksDetail = () => {
type="text"
id={`input-comment-${data.id}`}
className="p-4 focus:outline-none focus:border-sky-500"
placeholder={t("enterReply")}
placeholder={t("enterReply", { defaultValue: "Enter Reply" })}
/>
<a
href="javascript:void(0)"
className="flex py-1 px-2 rounded-md items-center ml-2 bg-[#f7b357] text-white text-sm lg:text-base"
onClick={() => postDataChild(data.id)}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</a>
</div>
{data.children.length > 0
@ -379,7 +379,7 @@ const IndeksDetail = () => {
showInput(`comment-id-${child1.id}`)
}
>
{t("reply")}
{t("reply", { defaultValue: "Reply" })}
</a>
<a
href="javascript:void(0)"
@ -394,7 +394,7 @@ const IndeksDetail = () => {
}
onClick={() => deleteData(child1.id)}
>
{t("delete")}
{t("delete", { defaultValue: "Delete" })}
</a>
</div>
</div>
@ -407,14 +407,14 @@ const IndeksDetail = () => {
type="text"
id={`input-comment-${child1.id}`}
className="p-4 focus:outline-none focus:border-sky-500"
placeholder={t("enterReply")}
placeholder={t("enterReply", { defaultValue: "Enter Reply" })}
/>
<a
href="javascript:void(0)"
className="flex text-sm lg:text-base py-1 px-2 rounded-md items-center ml-2 bg-[#f7b357] text-white"
onClick={() => postDataChild(child1.id)}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</a>
</div>
{child1.children.length > 0
@ -466,7 +466,7 @@ const IndeksDetail = () => {
showInput("comment-id-" + child2.id)
}
>
{t("reply")}
{t("reply", { defaultValue: "Reply" })}
</a>
<a
href="javascript:void(0)"
@ -481,7 +481,7 @@ const IndeksDetail = () => {
}
onClick={() => deleteData(child2.id)}
>
{t("delete")}
{t("delete", { defaultValue: "Delete" })}
</a>
</div>
</div>
@ -494,14 +494,14 @@ const IndeksDetail = () => {
type="text"
id={`comment-id-${child2.id}`}
className="p-4 focus:outline-none focus:border-sky-500"
placeholder={t("enterReply")}
placeholder={t("enterReply", { defaultValue: "Enter Reply" })}
/>
<a
href="javascript:void(0)"
className="flex text-sm lg:text-base py-1 px-2 rounded-md items-center ml-2 bg-[#f7b357] text-white"
onClick={() => postDataChild(child1.id)}
>
{t("send")}
{t("send", { defaultValue: "Send" })}
</a>
</div>
</div>
@ -519,7 +519,7 @@ const IndeksDetail = () => {
<div className="space-x-5 flex flex-col px-4 lg:px-[300px] py-16 gap-5">
<h1 className="font-bold text-base lg:text-xl px-4 lg:px-8">
{" "}
{t("relatedPosts")}
{t("relatedPosts", { defaultValue: "Related Posts" })}
</h1>
<Carousel>
<CarouselContent className="w-full max-w-7xl">

View File

@ -130,34 +130,34 @@ const ChangePassword: React.FC = () => {
<div className="w-20 h-20 mx-auto rounded-full bg-red-700 flex items-center justify-center">
<span className="text-white text-3xl font-bold">👤</span>
</div>
<h1 className="text-2xl font-bold mt-4">{t("changePass")}</h1>
<h1 className="text-2xl font-bold mt-4">{t("changePass", { defaultValue: "Change Pass" })}</h1>
</div>
<div className="flex justify-center gap-4 mb-8">
<Link href={"/profile"}>
<button className="border border-red-700 text-red-700 px-4 py-2 rounded">
{t("userProfile")}
{t("userProfile", { defaultValue: "User Profile" })}
</button>
</Link>
<Link href={"/profile/change-profile"}>
<button className="border border-red-700 text-red-700 px-4 py-2 rounded">
{t("changePhoto")}
{t("changePhoto", { defaultValue: "Change Photo" })}
</button>
</Link>
<Link href={"/profile/change-password"}>
<button className="bg-red-700 text-white px-4 py-2 rounded">
{t("changePass")}
{t("changePass", { defaultValue: "Change Pass" })}
</button>
</Link>
</div>
<div className="max-w-3xl mx-auto bg-white shadow-sm p-4 rounded">
<p className="mb-6 text-gray-600">{t("pleaseChange")}</p>
<p className="mb-6 text-gray-600">{t("pleaseChange", { defaultValue: "Please Change" })}</p>
<form onSubmit={handleSubmit(onSubmit)}>
<div>
<div className="mb-4">
<Label>
{t("password")}
{t("password", { defaultValue: "Password" })}
<span className="text-red-500">*</span>
</Label>
<Controller
@ -169,7 +169,7 @@ const ChangePassword: React.FC = () => {
type="password"
defaultValue={field.value}
onChange={field.onChange}
placeholder={t("inputPass")}
placeholder={t("inputPass", { defaultValue: "Input Pass" })}
/>
)}
/>
@ -181,7 +181,7 @@ const ChangePassword: React.FC = () => {
</div>
<div className="mb-4">
<Label>
{t("confirmPass")}
{t("confirmPass", { defaultValue: "Confirm Pass" })}
<span className="text-red-500">*</span>
</Label>
<Controller
@ -193,7 +193,7 @@ const ChangePassword: React.FC = () => {
type="password"
defaultValue={field.value}
onChange={field.onChange}
placeholder={t("samePass")}
placeholder={t("samePass", { defaultValue: "Same Pass" })}
/>
)}
/>
@ -209,7 +209,7 @@ const ChangePassword: React.FC = () => {
type="submit"
className="bg-red-700 text-white px-6 py-2 rounded hover:bg-red-800 focus:outline-none focus:ring focus:ring-red-300"
>
{t("save")}
{t("save", { defaultValue: "Save" })}
</button>
</div>
</div>

View File

@ -34,35 +34,35 @@ const ChangeProfile: React.FC = () => {
<div className="w-20 h-20 mx-auto rounded-full bg-red-700 flex items-center justify-center">
<span className="text-white text-3xl font-bold">👤</span>
</div>
<h1 className="text-2xl font-bold mt-4">{t("changePhoto")}</h1>
<h1 className="text-2xl font-bold mt-4">{t("changePhoto", { defaultValue: "Change Photo" })}</h1>
</div>
<div className="flex justify-center gap-4 mb-8">
<Link href={"/profile"}>
<button className="border border-red-700 text-red-700 px-4 py-2 rounded">{t("userProfile")}</button>
<button className="border border-red-700 text-red-700 px-4 py-2 rounded">{t("userProfile", { defaultValue: "User Profile" })}</button>
</Link>
<Link href={"/profile/change-profile"}>
<button className="bg-red-700 text-white px-4 py-2 rounded">{t("changePhoto")}</button>
<button className="bg-red-700 text-white px-4 py-2 rounded">{t("changePhoto", { defaultValue: "Change Photo" })}</button>
</Link>
<Link href={"/profile/change-password"}>
<button className="border border-red-700 text-red-700 px-4 py-2 rounded">{t("changePass")}</button>
<button className="border border-red-700 text-red-700 px-4 py-2 rounded">{t("changePass", { defaultValue: "Change Pass" })}</button>
</Link>
</div>
<div className="w-80 mx-auto bg-gray-900 text-white shadow-md p-8 rounded">
<div className="flex justify-center mb-6">
<div className="w-40 h-40 rounded-full border border-gray-300 flex items-center justify-center">
{selectedImage ? <Image width={1920} height={1080} src={URL.createObjectURL(selectedImage)} alt="Preview" className="w-full h-full rounded-full object-cover" /> : <span className="text-gray-500">{t("noImage")}</span>}
{selectedImage ? <Image width={1920} height={1080} src={URL.createObjectURL(selectedImage)} alt="Preview" className="w-full h-full rounded-full object-cover" /> : <span className="text-gray-500">{t("noImage", { defaultValue: "No Image" })}</span>}
</div>
</div>
<div className="flex justify-center gap-4">
<input type="file" id="upload" accept="image/*" className="hidden" onChange={handleImageChange} />
<label htmlFor="upload" className="bg-blue-600 text-white px-4 py-2 rounded cursor-pointer">
{t("changePhoto")}
{t("changePhoto", { defaultValue: "Change Photo" })}
</label>
<button onClick={handleDelete} className="border border-red-700 text-red-700 px-4 py-2 rounded">
{t("deletePhoto")}{" "}
{t("deletePhoto", { defaultValue: "Delete Photo" })}{" "}
</button>
</div>
</div>

View File

@ -117,22 +117,22 @@ const UbahProfile: React.FC = () => {
<div className="w-20 h-20 mx-auto rounded-full bg-red-700 flex items-center justify-center">
<span className="text-white text-3xl font-bold">👤</span>
</div>
<h1 className="text-2xl font-bold mt-4">{t("changeProfile")}</h1>
<h1 className="text-2xl font-bold mt-4">{t("changeProfile", { defaultValue: "Change Profile" })}</h1>
</div>
<div className="flex justify-center gap-4 mb-8">
<Link href={"/profile"}>
<button className="bg-red-700 text-white px-4 py-2 rounded">{t("userProfile")}</button>
<button className="bg-red-700 text-white px-4 py-2 rounded">{t("userProfile", { defaultValue: "User Profile" })}</button>
</Link>
<Link href={"/profile/change-profile"}>
<button className="border border-red-700 text-red-700 px-4 py-2 rounded">{t("changePhoto")}</button>
<button className="border border-red-700 text-red-700 px-4 py-2 rounded">{t("changePhoto", { defaultValue: "Change Photo" })}</button>
</Link>
<Link href={"/profile/change-password"}>
<button className="border border-red-700 text-red-700 px-4 py-2 rounded">{t("changePass")}</button>
<button className="border border-red-700 text-red-700 px-4 py-2 rounded">{t("changePass", { defaultValue: "Change Pass" })}</button>
</Link>
</div>
<div className="max-w-3xl mx-auto bg-white shadow-sm p-4 rounded">
<p className="mb-6 text-gray-600">{t("pleaseChange")}</p>
<p className="mb-6 text-gray-600">{t("pleaseChange", { defaultValue: "Please Change" })}</p>
<form onSubmit={handleSubmit(onSubmit)}>
{detail !== undefined ? (
<div>
@ -145,7 +145,7 @@ const UbahProfile: React.FC = () => {
</div>
<div className="mb-4">
<Label>
{t("fullName")}
{t("fullName", { defaultValue: "Full Name" })}
<span className="text-red-500">*</span>
</Label>
<Controller control={control} name="fullname" render={({ field }) => <Input size="md" type="text" defaultValue={detail?.fullname} onChange={field.onChange} placeholder="Enter Title" />} />
@ -153,7 +153,7 @@ const UbahProfile: React.FC = () => {
</div>
<div className="mb-4">
<Label>
{t("identityNumber")}
{t("identityNumber", { defaultValue: "Identity Number" })}
<span className="text-red-500">*</span>
</Label>
<Controller control={control} name="memberIdentity" render={({ field }) => <Input size="md" type="text" defaultValue={detail?.memberIdentity} onChange={field.onChange} placeholder="Enter Title" />} />
@ -168,7 +168,7 @@ const UbahProfile: React.FC = () => {
</div>
<div className="mb-4">
<Label>
{t("number")}
{t("number", { defaultValue: "Number" })}
<span className="text-red-500">*</span>
</Label>
<Controller control={control} name="phoneNumber" render={({ field }) => <Input size="md" type="number" defaultValue={detail?.phoneNumber} onChange={field.onChange} placeholder="Enter Title" />} />
@ -176,7 +176,7 @@ const UbahProfile: React.FC = () => {
</div>
<div className="mb-4">
<Label>
{t("address")}
{t("address", { defaultValue: "Address" })}
<span className="text-red-500">*</span>
</Label>
<Controller control={control} name="address" render={({ field }) => <Textarea defaultValue={detail?.address} onChange={field.onChange} placeholder="Enter Title" />} />
@ -185,7 +185,7 @@ const UbahProfile: React.FC = () => {
<div className="text-right">
<div className="mt-4">
<button type="submit" className="bg-red-700 text-white px-6 py-2 rounded hover:bg-red-800 focus:outline-none focus:ring focus:ring-red-300">
{t("save")}
{t("save", { defaultValue: "Save" })}
</button>
</div>
</div>

View File

@ -616,7 +616,7 @@ const Schedule = (props: any) => {
<div className="gap-6 flex flex-row justify-end">
<p className="font-semibold">Filter</p>
<button className="text-blue-400" onClick={doFilter}>
{t("save")}
{t("save", { defaultValue: "Save" })}
</button>
</div>
<div className="border w-full border-t border-slate-500"></div>
@ -669,7 +669,7 @@ const Schedule = (props: any) => {
<thead className="text-md">
<tr className="h-full">
<th className="text-center border border-gray-100 dark:border-gray-700 py-6 min-w-[210px]">
{t("timeTable")}
{t("timeTable", { defaultValue: "Time Table" })}
</th>
<th className="text-center border border-r-0 border-gray-100 dark:border-gray-700 py-6 w-[20px]">
<a
@ -706,7 +706,7 @@ const Schedule = (props: any) => {
<p className="text-2xl">
{dateAWeek[0]?.split("-")[2]}
</p>
<p>{t("monday")}</p>
<p>{t("monday", { defaultValue: "Monday" })}</p>
</div>
</th>
<th
@ -720,7 +720,7 @@ const Schedule = (props: any) => {
<div className="text-2xl">
{dateAWeek[1]?.split("-")[2]}
</div>
{t("tuesday")}
{t("tuesday", { defaultValue: "Tuesday" })}
</th>
<th
className={`text-center border border-gray-100 dark:border-gray-700 py-6 min-w-[100px] ${
@ -733,7 +733,7 @@ const Schedule = (props: any) => {
<div className="text-2xl">
{dateAWeek[2]?.split("-")[2]}
</div>
{t("wednesday")}
{t("wednesday", { defaultValue: "Wednesday" })}
</th>
<th
className={`text-center border border-gray-100 dark:border-gray-700 py-6 min-w-[100px] ${
@ -746,7 +746,7 @@ const Schedule = (props: any) => {
<div className="text-2xl">
{dateAWeek[3]?.split("-")[2]}
</div>
{t("thursday")}
{t("thursday", { defaultValue: "Thursday" })}
</th>
<th
className={`text-center border border-gray-100 dark:border-gray-700 py-6 min-w-[100px] ${
@ -759,7 +759,7 @@ const Schedule = (props: any) => {
<div className="text-2xl">
{dateAWeek[4]?.split("-")[2]}
</div>
{t("friday")}
{t("friday", { defaultValue: "Friday" })}
</th>
<th
className={`text-center border border-gray-100 dark:border-gray-700 py-6 min-w-[100px] ${
@ -772,7 +772,7 @@ const Schedule = (props: any) => {
<div className="text-2xl">
{dateAWeek[5]?.split("-")[2]}
</div>
{t("saturday")}
{t("saturday", { defaultValue: "Saturday" })}
</th>
<th
onClick={() => changeNextWeek()}
@ -787,7 +787,7 @@ const Schedule = (props: any) => {
<p className="text-2xl">
{dateAWeek[6]?.split("-")[2]}
</p>
<p>{t("sunday")}</p>
<p>{t("sunday", { defaultValue: "Sunday" })}</p>
</div>
{/* <a className="cursor-pointer h-fit p-0 m-0 self-center">
<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24">
@ -865,7 +865,7 @@ const Schedule = (props: any) => {
onKeyUp={handleKeyUp}
onKeyDown={handleKeyDown}
type="text"
placeholder={t("titleSchedule")}
placeholder={t("titleSchedule", { defaultValue: "Title Schedule" })}
className="pl-8 pr-4 py-1 w-full border rounded-full text-sm focus:outline-none"
/>
<span className="absolute left-2 top-1/2 transform -translate-y-1/2">
@ -921,7 +921,7 @@ const Schedule = (props: any) => {
<Accordion type="single" collapsible className="w-full">
<AccordionItem value="item-1">
<AccordionTrigger>{t("todaySchedule")}</AccordionTrigger>
<AccordionTrigger>{t("todaySchedule", { defaultValue: "Today Schedule" })}</AccordionTrigger>
{todayList?.map((list: any) => (
<AccordionContent
key={list?.id}
@ -940,7 +940,7 @@ const Schedule = (props: any) => {
<Icon icon="bxs:map" width={40} />
{list?.address}
</p>
<p>{t("speaker")}</p>
<p>{t("speaker", { defaultValue: "Speaker" })}</p>
<p className="flex flex-row items-center gap-2">
<Icon icon="ic:round-person" />
{list?.speakerTitle}&nbsp;{list?.speakerName}
@ -951,7 +951,7 @@ const Schedule = (props: any) => {
</AccordionItem>
<AccordionItem value="item-2">
<AccordionTrigger>{t("previousSchedule")}</AccordionTrigger>
<AccordionTrigger>{t("previousSchedule", { defaultValue: "Previous Schedule" })}</AccordionTrigger>
{prevdayList?.map((list: any) => (
<AccordionContent
key={list?.id}
@ -970,7 +970,7 @@ const Schedule = (props: any) => {
<Icon icon="bxs:map" width={40} />
{list?.address}
</p>
<p>{t("speaker")}</p>
<p>{t("speaker", { defaultValue: "Speaker" })}</p>
<p className="flex flex-row items-center gap-2">
<Icon icon="ic:round-person" />
{list?.speakerTitle}&nbsp;{list?.speakerName}
@ -981,7 +981,7 @@ const Schedule = (props: any) => {
</AccordionItem>
<AccordionItem value="item-3">
<AccordionTrigger>{t("nextSchedule")}</AccordionTrigger>
<AccordionTrigger>{t("nextSchedule", { defaultValue: "Next Schedule" })}</AccordionTrigger>
{nextdayList?.map((list: any) => (
<AccordionContent
key={list?.id}
@ -1000,7 +1000,7 @@ const Schedule = (props: any) => {
<Icon icon="bxs:map" width={40} />
{list?.address}
</p>
<p>{t("speaker")}</p>
<p>{t("speaker", { defaultValue: "Speaker" })}</p>
<p className="flex flex-row items-center gap-2">
<Icon icon="ic:round-person" />
{list?.speakerTitle}&nbsp;{list?.speakerName}

View File

@ -504,11 +504,11 @@ const FilterPage = () => {
<div className="flex flex-col md:flex-row items-start gap-5 py-10 px-4 lg:px-20 bg-[#f7f7f7] dark:bg-black">
<p>
{" "}
{t("video")}&nbsp;
{">"} <span className="font-bold">{t("allVideo")}</span>
{t("video", { defaultValue: "Video" })}&nbsp;
{">"} <span className="font-bold">{t("allVideo", { defaultValue: "All Video" })}</span>
</p>
<p className="font-bold">|</p>
<p>{`${t("thereIs")} ${totalContent} ${t("downloadableVideo")}`}</p>
<p>{`${t("thereIs", { defaultValue: "There Is" })} ${totalContent} ${t("downloadableVideo", { defaultValue: "Downloadable Video" })}`}</p>
</div>
{/* Left */}
@ -525,7 +525,7 @@ const FilterPage = () => {
htmlFor="search"
className="block text-sm font-medium text-gray-700 dark:text-white"
>
{t("search")}
{t("search", { defaultValue: "Search" })}
</label>
<Input
value={searchTitle}
@ -534,28 +534,28 @@ const FilterPage = () => {
onKeyDown={handleKeyDown}
type="text"
id="search"
placeholder={t("searchTitle")}
placeholder={t("searchTitle", { defaultValue: "Search Title" })}
className="mt-1 w-full border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("monthYear")}
{t("monthYear", { defaultValue: "Month Year" })}
</label>
<ReactDatePicker
selected={monthYearFilter}
className="mt-1 w-full text-xs border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
onChange={(date) => setMonthYearFilter(date)}
dateFormat="MM | yyyy"
placeholderText={t("selectYear")}
placeholderText={t("selectYear", { defaultValue: "Select Year" })}
showMonthYearPicker
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-white">
{t("date")}
{t("date", { defaultValue: "Date" })}
</label>
<div className="flex flex-row justify justify-between gap-2">
<ReactDatePicker
@ -566,7 +566,7 @@ const FilterPage = () => {
onChange={(update) => {
setDateRange(update);
}}
placeholderText={t("selectDate")}
placeholderText={t("selectDate", { defaultValue: "Select Date" })}
onCalendarClose={() => setCalenderState(!calenderState)}
/>
<div className="flex items-center">
@ -587,7 +587,7 @@ const FilterPage = () => {
<div>
<h3 className="text-sm font-medium text-gray-700 dark:text-white">
{t("categories")}
{t("categories", { defaultValue: "Categories" })}
</h3>
<ul className="mt-2 space-y-2">
{categories.map((category: any) => (
@ -772,14 +772,14 @@ const FilterPage = () => {
<Reveal>
<div className="w-full">
<div className="flex flex-col items-end mb-4">
<h2 className="text-lg font-semibold">{t("sortBy")}</h2>
<h2 className="text-lg font-semibold">{t("sortBy", { defaultValue: "Sort By" })}</h2>
<select
defaultValue={sortBy == "popular" ? "terpopuler" : "terbaru"}
onChange={(e) => handleSorting(e)}
className="border rounded-md py-2 px-3 focus:ring-red-500 focus:border-red-500"
>
<option value="latest">{t("latest")}</option>
<option value="popular">{t("mostPopular")}</option>
<option value="latest">{t("latest", { defaultValue: "Latest" })}</option>
<option value="popular">{t("mostPopular", { defaultValue: "Most Popular" })}</option>
</select>
</div>

View File

@ -53,9 +53,9 @@ const Login = ({ params: { locale } }: { params: { locale: string } }) => {
</Link>
</div> */}
{/* <div className="text-left 2xl:mb-10 mb-4 mt-10">
<h4 className="font-semibold text-3xl text-left">{t("logInPlease")}</h4>
<h4 className="font-semibold text-3xl text-left">{t("logInPlease", { defaultValue: "Log In Please" })}</h4>
<div className="text-default-500 text-base">
{t("acc")} <span className="text-red-500">{t("reg")}</span>
{t("acc", { defaultValue: "Acc" })} <span className="text-red-500">{t("reg", { defaultValue: "Reg" })}</span>
</div>
</div> */}
<LoginForm />

View File

@ -88,16 +88,16 @@ const page = () => {
};
const validationSchema = Yup.object().shape({
firstName: Yup.string().required(t("nameEmpty")),
username: Yup.string().required(t("usernameEmpty")),
phoneNumber: Yup.string().required(t("numberEmpty")),
address: Yup.string().required(t("addressEmpty")),
email: Yup.string().required(t("emailEmpty")),
provinsi: Yup.string().required(t("provinceEmpty")),
kota: Yup.string().required(t("cityEmpty")),
kecamatan: Yup.string().required(t("subdistrictEmpty")),
password: Yup.string().required(t("passwordEmpty")),
passwordConf: Yup.string().required(t("confirmEmpty")),
firstName: Yup.string().required(t("nameEmpty", { defaultValue: "Name Empty" })),
username: Yup.string().required(t("usernameEmpty", { defaultValue: "Username Empty" })),
phoneNumber: Yup.string().required(t("numberEmpty", { defaultValue: "Number Empty" })),
address: Yup.string().required(t("addressEmpty", { defaultValue: "Address Empty" })),
email: Yup.string().required(t("emailEmpty", { defaultValue: "Email Empty" })),
provinsi: Yup.string().required(t("provinceEmpty", { defaultValue: "Province Empty" })),
kota: Yup.string().required(t("cityEmpty", { defaultValue: "City Empty" })),
kecamatan: Yup.string().required(t("subdistrictEmpty", { defaultValue: "Subdistrict Empty" })),
password: Yup.string().required(t("passwordEmpty", { defaultValue: "Password Empty" })),
passwordConf: Yup.string().required(t("confirmEmpty", { defaultValue: "Confirm Empty" })),
});
const formOptions = {
@ -358,7 +358,7 @@ const page = () => {
setEmailValidate("");
setEmail(e);
} else {
setEmailValidate(t("emailValid"));
setEmailValidate(t("emailValid", { defaultValue: "Email Valid" }));
setEmail("");
}
};
@ -562,11 +562,11 @@ const page = () => {
: {}
}
>
<p className="text-2xl lg:text-4xl px-0 lg:px-12 font-bold ">{stepThreeActive ? t("userData") : t("registerFirst")}</p>
<p className="text-2xl lg:text-4xl px-0 lg:px-12 font-bold ">{stepThreeActive ? t("userData", { defaultValue: "User Data" }) : t("registerFirst", { defaultValue: "Register First" })}</p>
<p className="px-0 lg:px-12 text-sm lg:text-base mt-2">
{t("alreadyHave")}{" "}
{t("alreadyHave", { defaultValue: "Already Have" })}{" "}
<Link href="/auth" className="text-red-500">
<b>{t("logIn")}</b>
<b>{t("logIn", { defaultValue: "Log In" })}</b>
</Link>
</p>
</div>
@ -580,8 +580,8 @@ const page = () => {
: {}
}
>
<p className="text-black dark:text-white text-2xl px-0 lg:px-20 font-semibold">{t("enterOTP")}</p>
<p className="text-red-500 text-sm px-0 lg:px-20">{t("checkInbox")}</p>
<p className="text-black dark:text-white text-2xl px-0 lg:px-20 font-semibold">{t("enterOTP", { defaultValue: "Enter O T P" })}</p>
<p className="text-red-500 text-sm px-0 lg:px-20">{t("checkInbox", { defaultValue: "Check Inbox" })}</p>
</div>
</div>
@ -597,7 +597,7 @@ const page = () => {
}
>
<Label htmlFor="association" className="mb-2">
{t("member")} <span className="text-red-500">*</span>
{t("member", { defaultValue: "Member" })} <span className="text-red-500">*</span>
</Label>
<select
className={`py-2 px-1 rounded-md border text-sm text-slate-400 border-slate-300 bg-white dark:bg-slate-600 ${errors.association ? "block" : ""}`}
@ -606,7 +606,7 @@ const page = () => {
onChange={(e) => setAssociation(e.target.value)}
>
<option disabled selected>
{t("association")}
{t("association", { defaultValue: "Association" })}
</option>
<option value="PWI" key="1">
PWI (Persatuan Wartawan Indonesia)
@ -621,7 +621,7 @@ const page = () => {
AJI (Asosiasi Jurnalis Indonesia)
</option>
<option value="Wartawan" key="5">
{t("otherIdentity")}
{t("otherIdentity", { defaultValue: "Other Identity" })}
</option>
</select>
<div className="hidden w-full mt-[0.25rem] text-lg text-[#dc3545]">{errors.association?.message}</div>
@ -630,7 +630,7 @@ const page = () => {
{Number(category) == 7 ? (
<div className="px-0 lg:px-[34px]">
<label htmlFor="userIdentity" className="mb-3">
<b>{t("policeNumber")}</b> <span className="text-red-500">*</span>
<b>{t("policeNumber", { defaultValue: "Police Number" })}</b> <span className="text-red-500">*</span>
</label>
<Input className="mt-3" autoComplete="off" placeholder="Masukan Nomor Registrasi Polri Anda" type="text" onChange={(event: any) => setPersonilNRP(event.target.value)} />
<p className="text-red-500">{userIdentityValidate}</p>
@ -650,9 +650,9 @@ const page = () => {
}
>
<Label htmlFor="journalistCertificate">
{t("journalistNumber")} <span className="text-red-500">*</span>
{t("journalistNumber", { defaultValue: "Journalist Number" })} <span className="text-red-500">*</span>
</Label>
<Input className="rounded-md py-3" autoComplete="off" placeholder={t("inputJournalist")} type="text" onChange={(event: any) => setJournalistCertificate(event.target.value)} />
<Input className="rounded-md py-3" autoComplete="off" placeholder={t("inputJournalist", { defaultValue: "Input Journalist" })} type="text" onChange={(event: any) => setJournalistCertificate(event.target.value)} />
</div>
) : (
""
@ -661,7 +661,7 @@ const page = () => {
<label htmlFor="email">
<b>Email</b> <span className="text-red-500">*</span>
</label>
<Input className="w-full" autoComplete="off" placeholder={t("inputEmail")} type="email" onChange={(event) => checkEmail(event.target.value)} />
<Input className="w-full" autoComplete="off" placeholder={t("inputEmail", { defaultValue: "Input Email" })} type="email" onChange={(event) => checkEmail(event.target.value)} />
<p className="text-sm text-red-500 mt-1">{emailValidate}</p>
</div>
</div>
@ -690,10 +690,10 @@ const page = () => {
</p>
<div className="flex flex-row px-0 lg:px-28 justify-between items-center my-4">
<a className="bg-slate-300 dark:bg-black text-center rounded-lg mr-1 w-[200px] py-2 text-base cursor-pointer" onClick={() => handleResendOTP()}>
{t("resending")} ({convertMilisecondsToHour(timerCount)})
{t("resending", { defaultValue: "Resending" })} ({convertMilisecondsToHour(timerCount)})
</a>
<a className="bg-red-700 w-[200px] py-2 text-center text-white rounded-lg ml-1 cursor-pointer" onClick={() => handleVerifyOTP()}>
{t("next")}
{t("next", { defaultValue: "Next" })}
</a>
</div>
</div>
@ -703,7 +703,7 @@ const page = () => {
{Number(category) == 6 || Number(category) == 7 ? (
<div className="px-0 lg:px-[34px]">
<Label className="mb-2">
{`${Number(category) == 6 ? t("journalistNumber") : "NRP"}`}
{`${Number(category) == 6 ? t("journalistNumber", { defaultValue: "Journalist Number" }) : "NRP"}`}
<span className="text-red-500">*</span>
</Label>
<Input
@ -711,7 +711,7 @@ const page = () => {
autoComplete="off"
className={`mb-3 ${errors.memberIdentity ? "block" : ""}`}
{...register("memberIdentity")}
placeholder={t("inputNumberIdentity")}
placeholder={t("inputNumberIdentity", { defaultValue: "Input Number Identity" })}
onChange={(e) => handleIdentity(e.target.value)}
disabled
/>
@ -722,9 +722,9 @@ const page = () => {
)}
<div className="mb-4 px-0 lg:px-[34px]">
<Label className="mb-2">
{t("fullName")} <span className="text-red-500">*</span>
{t("fullName", { defaultValue: "Full Name" })} <span className="text-red-500">*</span>
</Label>
<Input type="text" autoComplete="off" className={` ${errors.firstName ? "block" : ""}`} {...register("firstName")} placeholder={t("enterFullName")} />
<Input type="text" autoComplete="off" className={` ${errors.firstName ? "block" : ""}`} {...register("firstName")} placeholder={t("enterFullName", { defaultValue: "Enter Full Name" })} />
<div className="text-red-500">{errors.firstName?.message}</div>
</div>
<div className="mb-4 px-0 lg:px-[34px]">
@ -736,7 +736,7 @@ const page = () => {
type="text"
autoComplete="off"
className={`${errors.username ? "block" : ""}`}
placeholder={t("enterUsername")}
placeholder={t("enterUsername", { defaultValue: "Enter Username" })}
onChange={(e) => {
setValUsername(e.target.value.trim());
}}
@ -759,27 +759,27 @@ const page = () => {
</div>
<div className="flex flex-col px-0 lg:px-[34px]">
<Label className="mb-2">
{t("number")} <span className="text-red-500">*</span>
{t("number", { defaultValue: "Number" })} <span className="text-red-500">*</span>
</Label>
<Input type="number" autoComplete="off" className={`mb-3 ${errors.phoneNumber ? "block" : ""}`} {...register("phoneNumber")} placeholder={t("enterNumber")} />
<Input type="number" autoComplete="off" className={`mb-3 ${errors.phoneNumber ? "block" : ""}`} {...register("phoneNumber")} placeholder={t("enterNumber", { defaultValue: "Enter Number" })} />
<div className="text-red-500">{errors.phoneNumber?.message}</div>
</div>
<div className="mb-4 px-0 lg:px-[34px]">
<Label htmlFor="address" className="mb-2">
{t("address")} <span className="text-red-500">*</span>
{t("address", { defaultValue: "Address" })} <span className="text-red-500">*</span>
</Label>
<Textarea className={` ${errors.address ? "block" : ""}`} {...register("address")} placeholder={t("insertAddress")} rows={3} />
<Textarea className={` ${errors.address ? "block" : ""}`} {...register("address")} placeholder={t("insertAddress", { defaultValue: "Insert Address" })} rows={3} />
<div className="text-red-500">{errors.address?.message}</div>
</div>
{Number(category) == 6 ? (
<div className="flex flex-col gap-3 px-0 lg:px-[34px]">
<div className="flex flex-col mb-2">
<Label htmlFor="provinsi" className="mb-2">
{t("institutions")} <span className="text-red-500">*</span>
{t("institutions", { defaultValue: "Institutions" })} <span className="text-red-500">*</span>
</Label>
<select className="mb-3 p-2 border text-sm text-slate-400 rounded-md border-slate-300 bg-white cursor-pointer" id="provinsi" onChange={(event) => handleInstituteOption(event)}>
<option disabled selected>
{t("selectInst")}
{t("selectInst", { defaultValue: "Select Inst" })}
</option>
{institution?.map((row: any) => (
<option value={row.id} key={row.id}>
@ -787,7 +787,7 @@ const page = () => {
</option>
))}
<option value="0" key="0">
{t("otherInst")}
{t("otherInst", { defaultValue: "Other Inst" })}
</option>
</select>
</div>
@ -802,15 +802,15 @@ const page = () => {
}
>
<Label htmlFor="alamat" className="mb-2">
{t("instName")} <span className="text-red-500">*</span>
{t("instName", { defaultValue: "Inst Name" })} <span className="text-red-500">*</span>
</Label>
<Input className="mb-3" autoComplete="off" placeholder="Masukan Nama Lengkap Institusi Anda" type="text" onChange={(event) => setCustomInstituteName(event.target.value)} />
</div>
<div>
<Label htmlFor="alamat" className="mb-2">
{t("instAddress")} <span className="text-red-500">*</span>
{t("instAddress", { defaultValue: "Inst Address" })} <span className="text-red-500">*</span>
</Label>
<Textarea className="mb-3" placeholder={t("addressInst")} rows={3} value={institusiAddress} onChange={(event) => setInstitusiAddress(event.target.value)} />
<Textarea className="mb-3" placeholder={t("addressInst", { defaultValue: "Address Inst" })} rows={3} value={institusiAddress} onChange={(event) => setInstitusiAddress(event.target.value)} />
</div>
</div>
) : (
@ -818,7 +818,7 @@ const page = () => {
)}
<div className="flex flex-col px-0 lg:px-[34px]">
<label htmlFor="provinsi" className="mb-2 ">
{t("province")} <span className="text-red-500">*</span>
{t("province", { defaultValue: "Province" })} <span className="text-red-500">*</span>
</label>
<select
className={`mb-3 p-2 border rounded-md text-sm text-slate-400 border-slate-300 bg-white cursor-pointer ${errors.provinsi ? "block" : ""}`}
@ -828,7 +828,7 @@ const page = () => {
onChange={(event) => getCity(event.target.value)}
>
<option disabled selected>
{t("selectProv")}
{t("selectProv", { defaultValue: "Select Prov" })}
</option>
{province?.map((row: any) => (
<option value={row.id} key={row.id}>
@ -840,7 +840,7 @@ const page = () => {
</div>
<div className="flex flex-col px-0 lg:px-[34px]">
<label htmlFor="kota" className="mb-2">
{t("city")} <span className="text-red-500">*</span>
{t("city", { defaultValue: "City" })} <span className="text-red-500">*</span>
</label>
<select
className={`mb-3 p-2 border text-sm text-slate-400 rounded-md border-slate-300 bg-white cursor-pointer ${errors.kota ? "block" : ""}`}
@ -849,7 +849,7 @@ const page = () => {
onChange={(event) => getDistricts(event.target.value)}
>
<option disabled selected>
{t("selectCity")}
{t("selectCity", { defaultValue: "Select City" })}
</option>
{city?.map((row: any) => (
<option value={row.id} key={row.id}>
@ -861,11 +861,11 @@ const page = () => {
</div>
<div className="flex flex-col px-0 lg:px-[34px]">
<label htmlFor="kecamatan" className="mb-2">
{t("subdistrict")} <span className="text-red-500">*</span>
{t("subdistrict", { defaultValue: "Subdistrict" })} <span className="text-red-500">*</span>
</label>
<select className={`p-2 border text-sm text-slate-400 rounded-md border-slate-300 bg-white cursor-pointer ${errors.kecamatan ? "block" : ""}`} {...register("kecamatan")} id="kecamatan">
<option disabled selected>
{t("selectSub")}
{t("selectSub", { defaultValue: "Select Sub" })}
</option>
{districts?.map((row: any) => (
<option value={row.id} key={row.id}>
@ -906,7 +906,7 @@ const page = () => {
</div> */}
<div className="mt-3.5 space-y-2 px-0 lg:px-[34px]">
<Label htmlFor="password" className="mb-2 font-medium text-default-600">
{t("password")} <span className="text-red-500">*</span>
{t("password", { defaultValue: "Password" })} <span className="text-red-500">*</span>
</Label>
<div className="relative">
<Input
@ -915,7 +915,7 @@ const page = () => {
autoComplete="off"
className={` ${errors.password ? "block" : ""}`}
{...register("password")}
placeholder={t("inputPass")}
placeholder={t("inputPass", { defaultValue: "Input Pass" })}
onChange={(e) => {
setValPassword(e.target.value.trim());
}}
@ -964,7 +964,7 @@ const page = () => {
</div> */}
<div className="mt-3.5 space-y-2 px-0 lg:px-[34px]">
<Label htmlFor="password" className="mb-2 font-medium text-default-600">
{t("confirmPass")} <span className="text-red-500">*</span>
{t("confirmPass", { defaultValue: "Confirm Pass" })} <span className="text-red-500">*</span>
</Label>
<div className="relative">
<Input
@ -973,7 +973,7 @@ const page = () => {
autoComplete="off"
className={` ${errors.passwordConf ? "block" : ""}`}
{...register("passwordConf")}
placeholder={t("samePass")}
placeholder={t("samePass", { defaultValue: "Same Pass" })}
onChange={(e) => {
setValPasswordConf(e.target.value.trim());
}}
@ -1001,11 +1001,11 @@ const page = () => {
setIsValidPassword(isValid);
}}
messages={{
minLength: t("passCharacter"),
specialChar: t("passSpecial"),
number: t("passNumber"),
capital: t("passCapital"),
match: t("passSame"),
minLength: t("passCharacter", { defaultValue: "Pass Character" }),
specialChar: t("passSpecial", { defaultValue: "Pass Special" }),
number: t("passNumber", { defaultValue: "Pass Number" }),
capital: t("passCapital", { defaultValue: "Pass Capital" }),
match: t("passSame", { defaultValue: "Pass Same" }),
}}
/>
</div>
@ -1023,13 +1023,13 @@ const page = () => {
>
<div className="text-center mb-2 px-[34px]">
<p className="text-sm lg:text-base">
{t("byRegis")} <br />{" "}
{t("byRegis", { defaultValue: "By Regis" })} <br />{" "}
<a href="/privacy" target="_blank" className="text-red-500">
<b>{t("terms")}</b>
<b>{t("terms", { defaultValue: "Terms" })}</b>
</a>{" "}
{t("and")}{" "}
{t("and", { defaultValue: "And" })}{" "}
<a href="/privacy" target="_blank" className="text-red-500">
<b>{t("privacy")}</b>
<b>{t("privacy", { defaultValue: "Privacy" })}</b>
</a>
</p>
</div>
@ -1042,7 +1042,7 @@ const page = () => {
setStepTwoActive(true);
}}
>
{t("send")} OTP
{t("send", { defaultValue: "Send" })} OTP
</a>
</div>
</div>
@ -1057,7 +1057,7 @@ const page = () => {
}
>
<Button type="submit" className="border w-[550px] text-center bg-red-700 text-white hover:bg-white hover:text-red-700 ">
{t("register")}
{t("register", { defaultValue: "Register" })}
</Button>
</div>
</div>

View File

@ -94,7 +94,7 @@ const EarningBlock = ({
</div>
<div className="font-normal text-xs text-default-600 whitespace-nowrap">
<span className="text-primary me-1">{percentage}</span>
{t("statistics_graph_desc")}
{t("statistics_graph_desc", { defaultValue: "Statistics Graph Desc" })}
</div>
</div>
<div className="flex-none">

View File

@ -22,13 +22,13 @@ const DashboardDropdown = () => {
</DropdownMenuTrigger>
<DropdownMenuContent align="end" className="w-[140px] p-0">
<DropdownMenuItem className="py-2 rounded-none border-b border-default-200 text-default-900 focus:bg-default-400 focus:text-default-100 dark:focus:text-default-900">
{t("last_28_days")}
{t("last_28_days", { defaultValue: "Last 28 Days" })}
</DropdownMenuItem>
<DropdownMenuItem className="py-2 rounded-none border-b border-default-200 text-default-900 focus:bg-default-400 focus:text-default-100 dark:focus:text-default-900">
{t("last_months")}
{t("last_months", { defaultValue: "Last Months" })}
</DropdownMenuItem>
<DropdownMenuItem className="py-2 rounded-none text-default-900 focus:bg-default-400 focus:text-default-100 dark:focus:text-default-900">
{t("last_year")}
{t("last_year", { defaultValue: "Last Year" })}
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>

View File

@ -285,7 +285,7 @@ export default function FormAccountReport() {
return (
<Card>
<div className="px-6 py-6">
<p className="text-lg font-semibold mb-3">{t("form-task")}</p>
<p className="text-lg font-semibold mb-3">{t("form-task", { defaultValue: "Form Task" })}</p>
{detail !== undefined ? (
<form onSubmit={handleSubmit(onSubmit)}>
<div className="flex flex-col justify-center items-center gap-5 mb-5">
@ -372,13 +372,13 @@ export default function FormAccountReport() {
<div className="mt-4">
<Link href={"/supervisor/communications/account-report"}>
<Button variant={"outline"} color="primary">
{t("cancel")}
{t("cancel", { defaultValue: "Cancel" })}
</Button>
</Link>
</div>
<div className="mt-4">
<Button type="submit" color="primary">
{t("submit")}
{t("submit", { defaultValue: "Submit" })}
</Button>
</div>
</div>

Some files were not shown because too many files have changed in this diff Show More