Skip to content

Commit f5be63a

Browse files
chore(release): 1.7.0 [skip ci]
# [1.7.0](v1.6.1...v1.7.0) (2023-05-10) ### Features * create helper to parse search params ([8623a9a](8623a9a))
1 parent 45bd1fc commit f5be63a

File tree

5 files changed

+49
-1
lines changed

5 files changed

+49
-1
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
# [1.7.0](https://github.com/ocadotechnology/codeforlife-package-javascript/compare/v1.6.1...v1.7.0) (2023-05-10)
2+
3+
4+
### Features
5+
6+
* create helper to parse search params ([8623a9a](https://github.com/ocadotechnology/codeforlife-package-javascript/commit/8623a9a8bdd17616ed14ec14e138f2959e741488))
7+
18
## [1.6.1](https://github.com/ocadotechnology/codeforlife-package-javascript/compare/v1.6.0...v1.6.1) (2023-05-09)
29

310

lib/cjs/helpers.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ export declare function insertDividerBetweenElements({ elements, dividerProps }:
55
elements: React.ReactElement[];
66
dividerProps?: DividerProps;
77
}): React.ReactElement[];
8+
export declare function getSearchParams(requiredParams?: Record<string, any>, optionalParams?: Record<string, any>): Record<string, any> | null;

lib/cjs/helpers.js

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
1414
return (mod && mod.__esModule) ? mod : { "default": mod };
1515
};
1616
Object.defineProperty(exports, "__esModule", { value: true });
17-
exports.insertDividerBetweenElements = exports.openInNewTab = void 0;
17+
exports.getSearchParams = exports.insertDividerBetweenElements = exports.openInNewTab = void 0;
1818
var react_1 = __importDefault(require("react"));
19+
var react_router_dom_1 = require("react-router-dom");
1920
var material_1 = require("@mui/material");
2021
function openInNewTab(url, target) {
2122
if (target === void 0) { target = '_blank'; }
@@ -31,3 +32,22 @@ function insertDividerBetweenElements(_a) {
3132
: undefined); });
3233
}
3334
exports.insertDividerBetweenElements = insertDividerBetweenElements;
35+
function getSearchParams(requiredParams, optionalParams) {
36+
if (requiredParams === void 0) { requiredParams = {}; }
37+
if (optionalParams === void 0) { optionalParams = {}; }
38+
var searchParams = (0, react_router_dom_1.useSearchParams)()[0];
39+
if (Object
40+
.keys(requiredParams)
41+
.some(function (name) { return searchParams.get(name) === null; })) {
42+
return null;
43+
}
44+
var params = __assign(__assign({}, requiredParams), Object.fromEntries(Object.keys(optionalParams)
45+
.filter(function (name) { return searchParams.get(name) !== null; })
46+
.map(function (name) { return [name, optionalParams[name]]; })));
47+
return Object.fromEntries(Object.entries(params)
48+
.map(function (_a) {
49+
var key = _a[0], value = _a[1];
50+
return [key, value(searchParams.get(key))];
51+
}));
52+
}
53+
exports.getSearchParams = getSearchParams;

lib/esm/helpers.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ export declare function insertDividerBetweenElements({ elements, dividerProps }:
55
elements: React.ReactElement[];
66
dividerProps?: DividerProps;
77
}): React.ReactElement[];
8+
export declare function getSearchParams(requiredParams?: Record<string, any>, optionalParams?: Record<string, any>): Record<string, any> | null;

lib/esm/helpers.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ var __assign = (this && this.__assign) || function () {
1010
return __assign.apply(this, arguments);
1111
};
1212
import React from 'react';
13+
import { useSearchParams } from 'react-router-dom';
1314
import { Divider } from '@mui/material';
1415
export function openInNewTab(url, target) {
1516
if (target === void 0) { target = '_blank'; }
@@ -23,3 +24,21 @@ export function insertDividerBetweenElements(_a) {
2324
? React.createElement(Divider, __assign({}, dividerProps))
2425
: undefined); });
2526
}
27+
export function getSearchParams(requiredParams, optionalParams) {
28+
if (requiredParams === void 0) { requiredParams = {}; }
29+
if (optionalParams === void 0) { optionalParams = {}; }
30+
var searchParams = useSearchParams()[0];
31+
if (Object
32+
.keys(requiredParams)
33+
.some(function (name) { return searchParams.get(name) === null; })) {
34+
return null;
35+
}
36+
var params = __assign(__assign({}, requiredParams), Object.fromEntries(Object.keys(optionalParams)
37+
.filter(function (name) { return searchParams.get(name) !== null; })
38+
.map(function (name) { return [name, optionalParams[name]]; })));
39+
return Object.fromEntries(Object.entries(params)
40+
.map(function (_a) {
41+
var key = _a[0], value = _a[1];
42+
return [key, value(searchParams.get(key))];
43+
}));
44+
}

0 commit comments

Comments
 (0)