{ "version": 3, "sources": ["../javascripts/components/link/index.tsx", "../javascripts/actions/routing.ts"], "sourcesContent": ["import { type Dispatch, bindActionCreators } from '@reduxjs/toolkit';\nimport React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n Link as ReactRouterDomLink,\n type LinkProps as ReactRouterDomLinkProps,\n} from 'react-router-dom';\n\nimport { RCV_ROUTING } from '../../actions/routing';\nimport type { RootState } from '../../reducers';\n\ntype LinkProps = ReactRouterDomLinkProps;\n\nconst Link = (props: LinkProps) => {\n const { t } = useTranslation(['validation']);\n const dispatch = useDispatch();\n const push = bindActionCreators(\n (path: string) => (_dispatch: Dispatch) => _dispatch({ type: RCV_ROUTING, path }),\n dispatch,\n );\n\n const block = useSelector((state: RootState) => state.assignmentDrafts.unsaved);\n\n const onClick = useCallback(\n (e: React.MouseEvent) => {\n if (block && !confirm(t('confirmUnsavedChanges', { ns: 'validation' }))) {\n e.preventDefault();\n e.stopPropagation();\n } else {\n if (props.onClick) {\n props.onClick(e);\n }\n push(props.to as string);\n }\n },\n [props.onClick, props.to, block],\n );\n\n return ;\n};\n\nexport default Link;\n", "import type { Dispatch as ReduxDispatch } from '@reduxjs/toolkit';\nimport type { BaseAction } from '../@types/actions';\n\nexport const RCV_ROUTING = 'RCV/ROUTING';\ntype RCV_ROUTING_TYPE = BaseAction & {\n path: string;\n};\n\nexport type ROUTING_ACTION = RCV_ROUTING_TYPE;\n\ntype Dispatch = ReduxDispatch;\n\nexport const silentRoute = (path: string) => (dispatch: Dispatch) => {\n dispatch({ type: RCV_ROUTING, path });\n};\n"], "mappings": "iNACA,IAAAA,EAAmC,SCE5B,IAAMC,EAAc,cASdC,EAAeC,GAAkBC,GAAuB,CACnEA,EAAS,CAAE,KAAMH,EAAa,KAAAE,CAAK,CAAC,CACtC,EDAA,IAAME,EAAQC,GAAqB,CACjC,GAAM,CAAE,EAAAC,CAAE,EAAIC,EAAe,CAAC,YAAY,CAAC,EACrCC,EAAWC,EAAY,EACvBC,EAAOC,EACVC,GAAkBC,GAAwBA,EAAU,CAAE,KAAMC,EAAa,KAAAF,CAAK,CAAC,EAChFJ,CACF,EAEMO,EAAQC,EAAaC,GAAqBA,EAAM,iBAAiB,OAAO,EAExEC,KAAU,eACbC,GAAuD,CAClDJ,GAAS,CAAC,QAAQT,EAAE,wBAAyB,CAAE,GAAI,YAAa,CAAC,CAAC,GACpEa,EAAE,eAAe,EACjBA,EAAE,gBAAgB,IAEdd,EAAM,SACRA,EAAM,QAAQc,CAAC,EAEjBT,EAAKL,EAAM,EAAY,EAE3B,EACA,CAACA,EAAM,QAASA,EAAM,GAAIU,CAAK,CACjC,EAEA,OAAO,EAAAK,QAAA,cAAChB,EAAA,CAAoB,GAAGC,EAAO,QAASa,EAAS,CAC1D,EAEOG,EAAQjB", "names": ["import_react", "RCV_ROUTING", "silentRoute", "path", "dispatch", "Link", "props", "t", "useTranslation", "dispatch", "useDispatch", "push", "bindActionCreators", "path", "_dispatch", "RCV_ROUTING", "block", "useSelector", "state", "onClick", "e", "React", "link_default"] }