44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
// * Packages
|
|
import { usePage } from "@inertiajs/react";
|
|
// * Other
|
|
import EnumSelect from "@/back/Components/Inputs/EnumSelect";
|
|
import { LaravelEnum } from "@/back/types/global";
|
|
import str from "@/hooks/use-string";
|
|
import useTrans from "@/hooks/use-translations";
|
|
|
|
interface Props {
|
|
name: string;
|
|
selected: number;
|
|
required: boolean;
|
|
label: string;
|
|
// eslint-disable-next-line no-unused-vars
|
|
setData: (name: string, value: number | null) => void;
|
|
}
|
|
|
|
export default function StaticRouteSelect(props: Props) {
|
|
const { name, selected, required, label, setData } = props;
|
|
|
|
const enumStaticRoutes = usePage().props
|
|
.enumStaticRoutes as LaravelEnum | null;
|
|
|
|
const transSelectValue = str(useTrans("back.static_route.select_value"))
|
|
.ucFirst()
|
|
.value();
|
|
const transNoRoutes = str(useTrans("back.static_route.no_route_defined"))
|
|
.ucFirst()
|
|
.value();
|
|
|
|
if (!enumStaticRoutes) return transNoRoutes;
|
|
|
|
return (
|
|
<EnumSelect
|
|
name={name}
|
|
label={label}
|
|
placeholder={transSelectValue}
|
|
selected={selected}
|
|
options={enumStaticRoutes}
|
|
setData={setData}
|
|
required={required}
|
|
/>
|
|
);
|
|
}
|