{"version":3,"file":"useSetLocationState.mjs","names":["useHistory","useLocation","useSetLocationState","$","_c","history","location","t0","hash","pathname","search","state","newState","currentState","hasChanged","Object","entries","some","t1","key","value","replace","setLocationState"],"sources":["../../src/hooks/useSetLocationState.js"],"sourcesContent":["import { useHistory, useLocation } from 'react-router-dom';\n\nexport const useSetLocationState = () => {\n  const history = useHistory();\n  const location = useLocation();\n\n  const setLocationState = (newState) => {\n    const currentState = location.state || {};\n\n    // Avoid unnecessary replace if state is already the same\n    const hasChanged = Object.entries(newState).some(\n      ([key, value]) => currentState[key] !== value\n    );\n    if (!hasChanged || !!location?.state) return;\n\n    history.replace({\n      pathname: location.pathname,\n      search: location.search,\n      hash: location.hash,\n      state: {\n        ...currentState,\n        ...newState\n      }\n    });\n  };\n\n  return setLocationState;\n};\n"],"mappings":";;;AAEA,MAAaE,4BAAsB;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACjC,MAAAC,UAAgBL,YAAY;CAC5B,MAAAM,WAAiBL,aAAa;CAAC,IAAAM;AAAA,KAAAJ,EAAA,OAAAE,WAAAF,EAAA,OAAAG,SAAAE,QAAAL,EAAA,OAAAG,SAAAG,YAAAN,EAAA,OAAAG,SAAAI,UAAAP,EAAA,OAAAG,SAAAK,OAAA;AAENJ,QAAAK,aAAA;GACvB,MAAAC,eAAqBP,SAAQK,SAAR,EAAoB;AAMzC,OAAI,CAHeI,OAAMC,QAASJ,SAAS,CAAAK,MACzCC,OAAA;IAAC,MAAA,CAAAC,KAAAC,SAAAF;AAAY,WAAKL,aAAaM,SAASC;KACzC,IACG,CAAgB,CAACd,UAAQK,MAAO;AAEpCN,WAAOgB,QAAS;IAAAZ,UACJH,SAAQG;IAASC,QACnBJ,SAAQI;IAAOF,MACjBF,SAAQE;IAAKG,OACZ;KAAA,GACFE;KAAY,GACZD;KACL;IACD,CAAC;;AACHT,IAAA,KAAAE;AAAAF,IAAA,KAAAG,SAAAE;AAAAL,IAAA,KAAAG,SAAAG;AAAAN,IAAA,KAAAG,SAAAI;AAAAP,IAAA,KAAAG,SAAAK;AAAAR,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;AAAC,QAlBuBI"}