feat: update translation with defaultValue
This commit is contained in:
parent
0d12b105fb
commit
d5303c4919
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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 })}>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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]">
|
||||
|
|
|
|||
|
|
@ -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 />
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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={[
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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) => (
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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"}>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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 (
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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 (
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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"}>
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 (
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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 (
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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 (
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
)}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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) => (
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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 && (
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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 (
|
||||
|
|
|
|||
|
|
@ -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 (
|
||||
|
|
|
|||
|
|
@ -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 />}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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")}
|
||||
{t("by", { defaultValue: "By" })}
|
||||
<span className="font-semibold text-black dark:text-white">
|
||||
{detail?.uploadedBy?.userLevel?.name}
|
||||
</span>
|
||||
</p>
|
||||
{/* <p className="text-xs lg:text-sm">
|
||||
| {t("updatedOn")}
|
||||
| {t("updatedOn", { defaultValue: "Updated On" })}
|
||||
{detail?.updatedAt} WIB |
|
||||
</p> */}
|
||||
<p className="text-xs lg:text-sm">
|
||||
| {t("updatedOn")}
|
||||
| {t("updatedOn", { defaultValue: "Updated On" })}
|
||||
{formatDateToIndonesian(new Date(detail?.updatedAt))}{" "}
|
||||
{detail?.timezone ? detail?.timezone : "WIB"}
|
||||
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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")}
|
||||
{t("by", { defaultValue: "By" })}
|
||||
<span className="font-semibold text-gray-500">
|
||||
{indeksData?.uploaderName}
|
||||
</span>
|
||||
| {t("updatedOn")} {indeksData?.createdAt} WIB
|
||||
| {t("updatedOn", { defaultValue: "Updated On" })} {indeksData?.createdAt} WIB
|
||||
|
||||
</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">
|
||||
|
|
|
|||
|
|
@ -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")}
|
||||
{">"} <span className="font-bold">{t("allVideo")}</span>
|
||||
{t("video", { defaultValue: "Video" })}
|
||||
{">"} <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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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")} <span className="font-semibold text-black dark:text-white">{dataDummy?.uploadedBy}</span>
|
||||
// {t("by", { defaultValue: "By" })} <span className="font-semibold text-black dark:text-white">{dataDummy?.uploadedBy}</span>
|
||||
// </p>
|
||||
// {/* <p className="text-xs lg:text-sm">
|
||||
// | {t("updatedOn")}
|
||||
// | {t("updatedOn", { defaultValue: "Updated On" })}
|
||||
// {detailDataImage?.updatedAt} WIB |
|
||||
// </p> */}
|
||||
// <p className="text-xs lg:text-sm">
|
||||
// | {t("updatedOn")}
|
||||
// | {t("updatedOn", { defaultValue: "Updated On" })}
|
||||
// {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")}
|
||||
{t("by", { defaultValue: "By" })}
|
||||
<span className="font-semibold text-black dark:text-white">
|
||||
{detailDataImage?.uploadedBy?.userLevel?.name}
|
||||
</span>
|
||||
</p>
|
||||
{/* <p className="text-xs lg:text-sm">
|
||||
| {t("updatedOn")}
|
||||
| {t("updatedOn", { defaultValue: "Updated On" })}
|
||||
{detailDataImage?.updatedAt} WIB |
|
||||
</p> */}
|
||||
<p className="text-xs lg:text-sm">
|
||||
| {t("updatedOn")}
|
||||
| {t("updatedOn", { defaultValue: "Updated On" })}
|
||||
{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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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")}
|
||||
{t("by", { defaultValue: "By" })}
|
||||
<span className="font-semibold text-gray-500">
|
||||
{indeksData?.uploaderName}
|
||||
</span>
|
||||
| {t("updatedOn")} {indeksData?.createdAt} WIB
|
||||
| {t("updatedOn", { defaultValue: "Updated On" })} {indeksData?.createdAt} WIB
|
||||
|
||||
</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">
|
||||
|
|
|
|||
|
|
@ -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")}
|
||||
{">"} <span className="font-bold">{t("allVideo")}</span>
|
||||
{t("video", { defaultValue: "Video" })}
|
||||
{">"} <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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -349,13 +349,13 @@ const Galery = (props: any) => {
|
|||
Saya */}
|
||||
{pathname?.split("/")[1] == "in" ? (
|
||||
<>
|
||||
<span className="text-black ">{t("gallery")}</span>
|
||||
{t("my")}
|
||||
<span className="text-black ">{t("gallery", { defaultValue: "Gallery" })}</span>
|
||||
{t("my", { defaultValue: "My" })}
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
<span className="text-black">{t("my")}</span>
|
||||
{t("gallery")}
|
||||
<span className="text-black">{t("my", { defaultValue: "My" })}</span>
|
||||
{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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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" }),
|
||||
},
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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}>
|
||||
|
|
|
|||
|
|
@ -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}>
|
||||
|
|
|
|||
|
|
@ -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")}
|
||||
{t("by", { defaultValue: "By" })}
|
||||
<span className="font-semibold text-gray-500">
|
||||
{indeksData?.uploaderName}
|
||||
</span>
|
||||
| {t("updatedOn")} {indeksData?.createdAt} WIB
|
||||
| {t("updatedOn", { defaultValue: "Updated On" })} {indeksData?.createdAt} WIB
|
||||
|
||||
</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">
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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} {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} {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} {list?.speakerName}
|
||||
|
|
|
|||
|
|
@ -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")}
|
||||
{">"} <span className="font-bold">{t("allVideo")}</span>
|
||||
{t("video", { defaultValue: "Video" })}
|
||||
{">"} <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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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 />
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
Loading…
Reference in New Issue