Skip to content

Commit bd74dc1

Browse files
committed
refactor: réécriture getParamsFromURL
1 parent 1cbb4c4 commit bd74dc1

1 file changed

Lines changed: 16 additions & 15 deletions

File tree

app/js/utils/urls.mjs

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -95,22 +95,23 @@ export function loadCSS(src) {
9595
}
9696

9797
// Pour gérer les paramètres dans l'URL
98-
export function getParamsFromURL() {
99-
const params1 = Object.fromEntries(
100-
new URLSearchParams(document.location.search),
101-
);
102-
// Version sécurisée : les paramètres sont dans le hash et ne sont donc pas envoyés au serveur
103-
const hash = window.location.hash;
104-
const indexStartParams = hash.indexOf("?");
105-
const hasParamsInHash = indexStartParams > -1;
106-
const paramsInHash = hasParamsInHash
107-
? hash.substring(indexStartParams + 1)
108-
: "";
109-
const params2 = hasParamsInHash
110-
? Object.fromEntries(new URLSearchParams(paramsInHash))
98+
export function getParamsFromURL(
99+
queryString = window.location.search,
100+
urlHash = window.location.hash,
101+
) {
102+
const paramsFromQuery = Object.fromEntries(new URLSearchParams(queryString));
103+
// Version sécurisée (hashHasParams) : les paramètres sont dans le hash et ne sont donc pas envoyés au serveur
104+
const hashHasParams = urlHash.includes("?");
105+
const hashQueryPart = hashHasParams ? urlHash.split("?")[1] : "";
106+
const paramsFromHash = hashHasParams
107+
? Object.fromEntries(new URLSearchParams(hashQueryPart))
111108
: {};
112-
const params = { ...params1, ...params2 };
113-
return params;
109+
110+
// Les paramètres dans le hash (#hash?p=1) écrasent les paramètres classiques dans l'URL (?p=2)
111+
return {
112+
...paramsFromQuery,
113+
...paramsFromHash,
114+
};
114115
}
115116

116117
// Pour ouvrir un nouveau chatbot

0 commit comments

Comments
 (0)