mirror of https://github.com/portainer/portainer
44 lines
884 B
TypeScript
44 lines
884 B
TypeScript
import { useRouter } from '@uirouter/react';
|
|
|
|
import { useParamState } from '@/react/hooks/useParamState';
|
|
|
|
export function useTemplateParams() {
|
|
const router = useRouter();
|
|
const [id] = useParamState('templateId', (param) => {
|
|
if (!param) {
|
|
return undefined;
|
|
}
|
|
|
|
const templateId = parseInt(param, 10);
|
|
if (Number.isNaN(templateId)) {
|
|
return undefined;
|
|
}
|
|
|
|
return templateId;
|
|
});
|
|
|
|
const [type] = useParamState('templateType', (param) => {
|
|
if (param === 'app' || param === 'custom') {
|
|
return param;
|
|
}
|
|
|
|
return undefined;
|
|
});
|
|
|
|
return [{ id, type }, handleChange] as const;
|
|
|
|
function handleChange({
|
|
id,
|
|
type,
|
|
}: {
|
|
id: number | undefined;
|
|
type: 'app' | 'custom' | undefined;
|
|
}) {
|
|
router.stateService.go(
|
|
'.',
|
|
{ templateId: id, templateType: type },
|
|
{ reload: false }
|
|
);
|
|
}
|
|
}
|