@bigbinary/neeto-commons-frontend 4.13.0-beta.9 → 4.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/configs/esbuild/alias.js +16 -3
- package/configs/esbuild/babel.config.js +2 -21
- package/configs/esbuild/constants.js +21 -0
- package/configs/esbuild/index.js +9 -21
- package/configs/esbuild/plugins/entrypoint.js +45 -0
- package/configs/esbuild/plugins/preval.js +1 -0
- package/configs/esbuild/utils.js +1 -44
- package/configs/vite/index.js +40 -0
- package/configs/vite/plugins/preval.js +25 -0
- package/configs/vite/plugins/svgr.js +54 -0
- package/configs/vite/plugins/virtualized.js +25 -0
- package/configs/webpack/resolve.js +1 -0
- package/dist/cjs/react-utils/HoneybadgerErrorBoundary/FallbackComponent.js +2 -1
- package/dist/cjs/react-utils/HoneybadgerErrorBoundary/FallbackComponent.js.map +1 -1
- package/dist/react-utils/HoneybadgerErrorBoundary/FallbackComponent.js +2 -1
- package/dist/react-utils/HoneybadgerErrorBoundary/FallbackComponent.js.map +1 -1
- package/package.json +6 -1
package/configs/esbuild/alias.js
CHANGED
|
@@ -1,12 +1,25 @@
|
|
|
1
|
+
/* eslint-disable import/extensions */
|
|
1
2
|
const path = require("path");
|
|
2
3
|
|
|
3
4
|
const commonResolve = require("@bigbinary/neeto-commons-frontend/configs/webpack/resolve.js");
|
|
4
5
|
|
|
5
|
-
const appResolve = require("../webpack/resolve.js");
|
|
6
|
-
|
|
7
6
|
module.exports = {
|
|
8
7
|
...commonResolve.alias,
|
|
9
|
-
|
|
8
|
+
"@bigbinary/neetoui/dist": path.resolve(
|
|
9
|
+
__dirname,
|
|
10
|
+
"../../../",
|
|
11
|
+
"neetoui/dist/index.css"
|
|
12
|
+
),
|
|
13
|
+
"@bigbinary/neeto-form-frontend/dist": path.resolve(
|
|
14
|
+
__dirname,
|
|
15
|
+
"../../../",
|
|
16
|
+
"neeto-form-frontend/dist"
|
|
17
|
+
),
|
|
18
|
+
"@bigbinary/neeto-time-zones/dist": path.resolve(
|
|
19
|
+
__dirname,
|
|
20
|
+
"../../../",
|
|
21
|
+
"neeto-time-zones/dist"
|
|
22
|
+
),
|
|
10
23
|
images: path.resolve(process.cwd(), "app/assets/images"),
|
|
11
24
|
assert: require.resolve("assert/"),
|
|
12
25
|
buffer: require.resolve("buffer/"),
|
|
@@ -1,25 +1,6 @@
|
|
|
1
|
-
const {
|
|
2
|
-
TRANSFORM_RULES,
|
|
3
|
-
} = require("@bigbinary/neeto-commons-frontend/configs/constants.js");
|
|
1
|
+
const { BABEL_CONFIG } = require("./constants");
|
|
4
2
|
|
|
5
3
|
module.exports = api => {
|
|
6
4
|
api.cache(true);
|
|
7
|
-
|
|
8
|
-
return {
|
|
9
|
-
presets: ["@bigbinary/neeto"],
|
|
10
|
-
plugins: [
|
|
11
|
-
[
|
|
12
|
-
"module-resolver",
|
|
13
|
-
{
|
|
14
|
-
root: ["./src"],
|
|
15
|
-
alias: {
|
|
16
|
-
"dayjs/plugin/timezone":
|
|
17
|
-
"@bigbinary/neeto-commons-frontend/utils/timezonePlugin",
|
|
18
|
-
},
|
|
19
|
-
loglevel: "silent",
|
|
20
|
-
},
|
|
21
|
-
],
|
|
22
|
-
...TRANSFORM_RULES,
|
|
23
|
-
],
|
|
24
|
-
};
|
|
5
|
+
return BABEL_CONFIG;
|
|
25
6
|
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const { TRANSFORM_RULES } = require("../constants");
|
|
2
|
+
|
|
3
|
+
const BABEL_CONFIG = {
|
|
4
|
+
presets: ["@bigbinary/neeto"],
|
|
5
|
+
plugins: [
|
|
6
|
+
[
|
|
7
|
+
"module-resolver",
|
|
8
|
+
{
|
|
9
|
+
root: ["./src"],
|
|
10
|
+
alias: {
|
|
11
|
+
"dayjs/plugin/timezone":
|
|
12
|
+
"@bigbinary/neeto-commons-frontend/utils/timezonePlugin",
|
|
13
|
+
},
|
|
14
|
+
loglevel: "silent",
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
...TRANSFORM_RULES,
|
|
18
|
+
],
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
module.exports = { BABEL_CONFIG };
|
package/configs/esbuild/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
/* eslint-disable import/extensions */
|
|
1
2
|
const path = require("path");
|
|
2
3
|
|
|
3
|
-
const commonResolve = require("@bigbinary/neeto-commons-frontend/configs/webpack/resolve.js");
|
|
4
4
|
const dotenv = require("dotenv");
|
|
5
5
|
const svgPlugin = require("esbuild-plugin-svgr");
|
|
6
6
|
const rails = require("esbuild-rails");
|
|
@@ -10,32 +10,27 @@ const sass = require("sass");
|
|
|
10
10
|
|
|
11
11
|
const alias = require("./alias.js");
|
|
12
12
|
const { babelPlugin } = require("./plugins/babel.js");
|
|
13
|
+
const { entrypointPlugin } = require("./plugins/entrypoint.js");
|
|
13
14
|
const { prevalPlugin } = require("./plugins/preval.js");
|
|
14
15
|
const { virtualizedPlugin } = require("./plugins/virtualized.js");
|
|
15
|
-
const {
|
|
16
|
-
createDefinitions,
|
|
17
|
-
entryPoint,
|
|
18
|
-
createModuleEntryPoints,
|
|
19
|
-
build,
|
|
20
|
-
watch,
|
|
21
|
-
createBigbinaryEntryPoints,
|
|
22
|
-
} = require("./utils.js");
|
|
16
|
+
const { createDefinitions, entryPoint, build, watch } = require("./utils.js");
|
|
23
17
|
|
|
24
|
-
// @ts-ignore
|
|
25
18
|
const postCssConfig = require("../../../../../postcss.config.js");
|
|
19
|
+
const commonResolve = require("../webpack/resolve.js");
|
|
26
20
|
|
|
27
21
|
const isProduction = process.env.NODE_ENV === "production";
|
|
28
22
|
const isWatchMode = process.argv.includes("--watch");
|
|
23
|
+
const assetHost =
|
|
24
|
+
process.env.ASSET_HOST &&
|
|
25
|
+
`https://${process.env.ASSET_HOST.replace(/https?\/\//, "")}`;
|
|
29
26
|
|
|
30
27
|
dotenv.config({ path: isProduction ? ".env" : ".env.development" });
|
|
31
28
|
|
|
32
29
|
const config = {
|
|
33
30
|
entryPoints: {
|
|
34
31
|
application: entryPoint("app/javascript/packs/application.js"),
|
|
35
|
-
...createBigbinaryEntryPoints(),
|
|
36
|
-
...createModuleEntryPoints(["antd", "recharts", "emojiMart"]),
|
|
37
32
|
},
|
|
38
|
-
publicPath:
|
|
33
|
+
publicPath: `${assetHost ?? ""}/assets`,
|
|
39
34
|
bundle: true,
|
|
40
35
|
splitting: true,
|
|
41
36
|
outdir: path.join(process.cwd(), "app/assets/builds"),
|
|
@@ -45,6 +40,7 @@ const config = {
|
|
|
45
40
|
chunkNames: "chunks/[name]-[hash].digested",
|
|
46
41
|
plugins: [
|
|
47
42
|
rails(),
|
|
43
|
+
entrypointPlugin(isWatchMode),
|
|
48
44
|
prevalPlugin(),
|
|
49
45
|
babelPlugin(),
|
|
50
46
|
virtualizedPlugin(),
|
|
@@ -61,7 +57,6 @@ const config = {
|
|
|
61
57
|
path.replace("@bigbinary/neetoui", "@bigbinary/neetoui/dist"),
|
|
62
58
|
logger: sass.Logger.silent,
|
|
63
59
|
}),
|
|
64
|
-
// staticImagesPlugin(),
|
|
65
60
|
],
|
|
66
61
|
conditions: ["style"],
|
|
67
62
|
logLevel: isWatchMode ? "info" : "error",
|
|
@@ -85,13 +80,6 @@ const config = {
|
|
|
85
80
|
"process.env.NODE_DEBUG": "'development'",
|
|
86
81
|
...createDefinitions(process),
|
|
87
82
|
},
|
|
88
|
-
banner: {
|
|
89
|
-
js: isWatchMode
|
|
90
|
-
? `(() => new EventSource("http://localhost:${
|
|
91
|
-
process.env.ESBUILD_PORT || 8000
|
|
92
|
-
}/esbuild").addEventListener('change', () => location.reload()))();`
|
|
93
|
-
: "",
|
|
94
|
-
},
|
|
95
83
|
};
|
|
96
84
|
|
|
97
85
|
module.exports = { config, build: isWatchMode ? watch : build };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/* eslint-disable @bigbinary/neeto/no-dangling-constants */
|
|
2
|
+
// Matches:
|
|
3
|
+
// const componentsContext = { App };
|
|
4
|
+
const COMPONENT_CONTEXT = /const\s+componentsContext\s*=\s*{[^}]+};?/;
|
|
5
|
+
|
|
6
|
+
// Matches:
|
|
7
|
+
// const App = React.lazy(() => import("src/App"));
|
|
8
|
+
const LAZY_LOAD_IMPORT =
|
|
9
|
+
/const\s+(\w+)\s*=\s*React\.lazy\(\s*\(\)\s*=>\s*import\(["'](.*?)["']\)\);?/;
|
|
10
|
+
|
|
11
|
+
const entrypointPlugin = isWatch => ({
|
|
12
|
+
name: "entrypoint-plugin",
|
|
13
|
+
setup(build) {
|
|
14
|
+
build.onLoad({ filter: /app\/javascript\/packs\/\w+\.js/ }, async args => {
|
|
15
|
+
const fs = require("fs").promises;
|
|
16
|
+
const contents = await fs.readFile(args.path, "utf8");
|
|
17
|
+
|
|
18
|
+
const eventSrcCode = `new EventSource("http://localhost:${
|
|
19
|
+
process.env.DEVSERVER_PORT || 8000
|
|
20
|
+
}/esbuild").addEventListener('change', () => location.reload());`;
|
|
21
|
+
|
|
22
|
+
const contentsWithEventSource = isWatch
|
|
23
|
+
? `${eventSrcCode}\n${contents}`
|
|
24
|
+
: contents;
|
|
25
|
+
|
|
26
|
+
const lazyLoadImport = contents.match(LAZY_LOAD_IMPORT);
|
|
27
|
+
const componentContext = contents.match(COMPONENT_CONTEXT);
|
|
28
|
+
if (lazyLoadImport && componentContext) {
|
|
29
|
+
const componentName = lazyLoadImport[1];
|
|
30
|
+
const importPath = lazyLoadImport[2];
|
|
31
|
+
const updatedContext = `const componentsContext = { ${componentName}: require("${importPath}").default };`;
|
|
32
|
+
|
|
33
|
+
const transformedContents = contentsWithEventSource
|
|
34
|
+
.replace(LAZY_LOAD_IMPORT, "")
|
|
35
|
+
.replace(COMPONENT_CONTEXT, updatedContext);
|
|
36
|
+
|
|
37
|
+
return { contents: transformedContents, loader: "js" };
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return { contents: contentsWithEventSource, loader: "js" };
|
|
41
|
+
});
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
module.exports = { entrypointPlugin };
|
package/configs/esbuild/utils.js
CHANGED
|
@@ -20,47 +20,6 @@ const createDefinitions = process => {
|
|
|
20
20
|
|
|
21
21
|
const entryPoint = file => path.join(process.cwd(), file);
|
|
22
22
|
|
|
23
|
-
const createBigbinaryEntryPoints = () => {
|
|
24
|
-
const directoryPath = "node_modules/@bigbinary";
|
|
25
|
-
const excludeList = [
|
|
26
|
-
"babel-preset-neeto",
|
|
27
|
-
"eslint-plugin-neeto",
|
|
28
|
-
"neeto-access-control-frontend",
|
|
29
|
-
];
|
|
30
|
-
const entries = {};
|
|
31
|
-
try {
|
|
32
|
-
const items = fs.readdirSync(directoryPath);
|
|
33
|
-
items.forEach(item => {
|
|
34
|
-
if (excludeList.includes(item)) return;
|
|
35
|
-
const itemPath = path.join(directoryPath, item, "/dist/index.js");
|
|
36
|
-
try {
|
|
37
|
-
fs.accessSync(itemPath);
|
|
38
|
-
entries[item] = entryPoint(itemPath);
|
|
39
|
-
} catch {
|
|
40
|
-
console.log(itemPath, "doesn't exist");
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
return entries;
|
|
44
|
-
} catch (error) {
|
|
45
|
-
console.error(`Error reading directory ${directoryPath}:`, error);
|
|
46
|
-
return {};
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
const createModuleEntryPoints = modules => {
|
|
51
|
-
const entries = {};
|
|
52
|
-
modules.forEach(module => {
|
|
53
|
-
const modulePath = `node_modules/${
|
|
54
|
-
module instanceof String ? module : module.path
|
|
55
|
-
}`;
|
|
56
|
-
const name = module instanceof String ? module : module.name;
|
|
57
|
-
if (fs.existsSync(modulePath)) {
|
|
58
|
-
entries[name] = entryPoint(modulePath);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
return entries;
|
|
62
|
-
};
|
|
63
|
-
|
|
64
23
|
const build = async config => {
|
|
65
24
|
try {
|
|
66
25
|
console.info(
|
|
@@ -82,7 +41,7 @@ const watch = async config => {
|
|
|
82
41
|
await ctx.watch();
|
|
83
42
|
await ctx.serve({
|
|
84
43
|
servedir: config.outdir,
|
|
85
|
-
port: parseInt(process.env.
|
|
44
|
+
port: parseInt(process.env.DEVSERVER_PORT || "8000"),
|
|
86
45
|
});
|
|
87
46
|
};
|
|
88
47
|
|
|
@@ -90,8 +49,6 @@ module.exports = {
|
|
|
90
49
|
consoleColors,
|
|
91
50
|
createDefinitions,
|
|
92
51
|
entryPoint,
|
|
93
|
-
createModuleEntryPoints,
|
|
94
52
|
build,
|
|
95
53
|
watch,
|
|
96
|
-
createBigbinaryEntryPoints,
|
|
97
54
|
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/* eslint-disable import/extensions */
|
|
2
|
+
const { default: react } = require("@vitejs/plugin-react");
|
|
3
|
+
const dotenv = require("dotenv");
|
|
4
|
+
|
|
5
|
+
const { prevalPlugin } = require("./plugins/preval.js");
|
|
6
|
+
const svgr = require("./plugins/svgr.js");
|
|
7
|
+
const { virtualizedPlugin } = require("./plugins/virtualized.js");
|
|
8
|
+
|
|
9
|
+
const postCssConfig = require("../../../../../postcss.config.js");
|
|
10
|
+
const { BABEL_CONFIG } = require("../esbuild/constants.js");
|
|
11
|
+
const { config: esbuildConfig } = require("../esbuild/index.js");
|
|
12
|
+
const { entryPoint } = require("../esbuild/utils.js");
|
|
13
|
+
|
|
14
|
+
dotenv.config({ path: ".env.development" });
|
|
15
|
+
|
|
16
|
+
const port = process.env.DEVSERVER_PORT || 8000;
|
|
17
|
+
|
|
18
|
+
const config = {
|
|
19
|
+
css: { postcss: postCssConfig },
|
|
20
|
+
plugins: [
|
|
21
|
+
svgr(),
|
|
22
|
+
react({ babel: BABEL_CONFIG }),
|
|
23
|
+
virtualizedPlugin(),
|
|
24
|
+
prevalPlugin(),
|
|
25
|
+
],
|
|
26
|
+
resolve: { extensions: esbuildConfig.resolveExtensions },
|
|
27
|
+
server: { port, origin: `http://localhost:${port}` },
|
|
28
|
+
build: {
|
|
29
|
+
manifest: true,
|
|
30
|
+
sourcemap: true,
|
|
31
|
+
cssCodeSplit: false,
|
|
32
|
+
rollupOptions: {
|
|
33
|
+
input: { application: entryPoint("app/javascript/packs/application.js") },
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
define: esbuildConfig.define,
|
|
37
|
+
root: "app/javascript/packs",
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
module.exports = { config };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/* eslint-disable import/extensions */
|
|
2
|
+
/* eslint-disable @bigbinary/neeto/no-dangling-constants */
|
|
3
|
+
|
|
4
|
+
const PkgTranslations = require("../../scripts/getPkgTranslations.js");
|
|
5
|
+
|
|
6
|
+
const PREVAL_IMPORT =
|
|
7
|
+
'preval.require("../../configs/scripts/getPkgTranslations.js")';
|
|
8
|
+
|
|
9
|
+
const prevalPlugin = () => ({
|
|
10
|
+
name: "preval-plugin",
|
|
11
|
+
transform(code, id) {
|
|
12
|
+
if (id.includes("node_modules") && code.includes(PREVAL_IMPORT)) {
|
|
13
|
+
const replacedCode = code.replace(
|
|
14
|
+
PREVAL_IMPORT,
|
|
15
|
+
JSON.stringify(PkgTranslations)
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
return { code: replacedCode, map: null };
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return null;
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
module.exports = { prevalPlugin };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const fs = require("fs");
|
|
2
|
+
|
|
3
|
+
const { transformAsync, createConfigItem } = require("@babel/core");
|
|
4
|
+
const pluginTransformReactConstantElements = require("@babel/plugin-transform-react-constant-elements");
|
|
5
|
+
const presetEnv = require("@babel/preset-env");
|
|
6
|
+
const presetReact = require("@babel/preset-react");
|
|
7
|
+
const { createFilter } = require("@rollup/pluginutils");
|
|
8
|
+
const { transform } = require("@svgr/core");
|
|
9
|
+
const jsx = require("@svgr/plugin-jsx");
|
|
10
|
+
const svgo = require("@svgr/plugin-svgo");
|
|
11
|
+
|
|
12
|
+
const babelOptions = {
|
|
13
|
+
babelrc: false,
|
|
14
|
+
configFile: false,
|
|
15
|
+
presets: [
|
|
16
|
+
createConfigItem(presetReact, { type: "preset" }),
|
|
17
|
+
createConfigItem([presetEnv, { modules: false }], { type: "preset" }),
|
|
18
|
+
],
|
|
19
|
+
plugins: [createConfigItem(pluginTransformReactConstantElements)],
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const plugin = (options = {}) => {
|
|
23
|
+
const filter = createFilter(options.include || "**/*.svg", options.exclude);
|
|
24
|
+
|
|
25
|
+
return {
|
|
26
|
+
name: "svgr",
|
|
27
|
+
|
|
28
|
+
async transform(_data, id) {
|
|
29
|
+
if (!filter(id)) return null;
|
|
30
|
+
|
|
31
|
+
if (id.slice(-4) !== ".svg") return null;
|
|
32
|
+
|
|
33
|
+
const load = fs.readFileSync(id, "utf8");
|
|
34
|
+
|
|
35
|
+
const jsCode = await transform(load, options, {
|
|
36
|
+
filePath: id,
|
|
37
|
+
caller: {
|
|
38
|
+
name: "@svgr/rollup",
|
|
39
|
+
previousExport: null, // Force default export
|
|
40
|
+
defaultPlugins: [svgo, jsx],
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
const result = await transformAsync(jsCode, babelOptions);
|
|
45
|
+
if (!result?.code) {
|
|
46
|
+
throw new Error("Error while transforming using Babel");
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return { code: result.code, map: null };
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
module.exports = plugin;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/* eslint-disable @bigbinary/neeto/no-dangling-constants */
|
|
2
|
+
|
|
3
|
+
const fs = require("fs");
|
|
4
|
+
const path = require("path");
|
|
5
|
+
|
|
6
|
+
const WRONG_CODE = `import { bpfrpt_proptype_WindowScroller } from "../WindowScroller.js";`;
|
|
7
|
+
|
|
8
|
+
const virtualizedPlugin = () => ({
|
|
9
|
+
name: "flat:react-virtualized",
|
|
10
|
+
configResolved() {
|
|
11
|
+
try {
|
|
12
|
+
const file = require
|
|
13
|
+
.resolve("react-virtualized")
|
|
14
|
+
.replace(
|
|
15
|
+
path.join("dist", "commonjs", "index.js"),
|
|
16
|
+
path.join("dist", "es", "WindowScroller", "utils", "onScroll.js")
|
|
17
|
+
);
|
|
18
|
+
const code = fs.readFileSync(file, "utf-8");
|
|
19
|
+
const modified = code.replace(WRONG_CODE, "");
|
|
20
|
+
fs.writeFileSync(file, modified);
|
|
21
|
+
} catch {}
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
module.exports = { virtualizedPlugin };
|
|
@@ -15,6 +15,7 @@ module.exports = {
|
|
|
15
15
|
translations: absolutePath("src/translations"),
|
|
16
16
|
utils: absolutePath("src/utils"),
|
|
17
17
|
src: absolutePath("src"),
|
|
18
|
+
stylesheets: absolutePath("stylesheets"),
|
|
18
19
|
neetoui: "@bigbinary/neetoui",
|
|
19
20
|
neetocommons: "@bigbinary/neeto-commons-frontend",
|
|
20
21
|
neetoicons: "@bigbinary/neeto-icons",
|
|
@@ -42,6 +42,7 @@ FallbackComponentImage.defaultProps = {
|
|
|
42
42
|
"'data-testid'": "fallback-svg",
|
|
43
43
|
xmlns: "http://www.w3.org/2000/svg"
|
|
44
44
|
};
|
|
45
|
+
var sanitize = DOMPurify.sanitize;
|
|
45
46
|
var FallbackComponent = function FallbackComponent() {
|
|
46
47
|
var _useTranslation = reactI18next.useTranslation(),
|
|
47
48
|
t = _useTranslation.t;
|
|
@@ -49,7 +50,7 @@ var FallbackComponent = function FallbackComponent() {
|
|
|
49
50
|
var listener = function listener(e) {
|
|
50
51
|
var _e$target;
|
|
51
52
|
if (ramda.isNil(e.state)) return;
|
|
52
|
-
window.location.href =
|
|
53
|
+
window.location.href = sanitize((_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.location.href);
|
|
53
54
|
};
|
|
54
55
|
window.addEventListener("popstate", listener);
|
|
55
56
|
return function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FallbackComponent.js","sources":["../../../../src/react-utils/HoneybadgerErrorBoundary/FallbackComponent.jsx"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport FallbackComponentImage from \"assets/images/fallback-component.svg\";\nimport
|
|
1
|
+
{"version":3,"file":"FallbackComponent.js","sources":["../../../../src/react-utils/HoneybadgerErrorBoundary/FallbackComponent.jsx"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport FallbackComponentImage from \"assets/images/fallback-component.svg\";\nimport DOMPurify from \"dompurify\";\nimport { Button, Typography } from \"neetoui\";\nimport { isNil } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nconst sanitize = DOMPurify.sanitize;\n\nconst FallbackComponent = () => {\n const { t } = useTranslation();\n\n useEffect(() => {\n const listener = e => {\n if (isNil(e.state)) return;\n window.location.href = sanitize(e.target?.location.href);\n };\n window.addEventListener(\"popstate\", listener);\n\n return () => window.removeEventListener(\"popstate\", listener);\n }, []);\n\n return (\n <div className=\"flex h-screen w-full flex-row items-start justify-start\">\n <div className=\"m-auto text-center\">\n <div className=\"m-auto mb-8 flex items-center justify-center\">\n <FallbackComponentImage />\n </div>\n <Typography\n className=\"mb-4\"\n component=\"h2\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {t(\"neetoCommons.fallbackComponent.somethingWentWrong\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-600 mb-8\"\n component=\"p\"\n style=\"body1\"\n weight=\"normal\"\n >\n <Trans\n i18nKey=\"neetoCommons.fallbackComponent.description\"\n components={{\n reloading: (\n <Button style=\"link\" onClick={() => window.location.reload()} />\n ),\n contactus: (\n <Button\n style=\"link\"\n onClick={() => {\n window.NeetoChat?.contextualHelp?.maximizeWidget();\n window.NeetoChat?.contextualHelp?.openWidget();\n }}\n />\n ),\n }}\n />\n </Typography>\n </div>\n </div>\n );\n};\n\nexport default FallbackComponent;\n"],"names":["FallbackComponentImage","props","_jsxs","_objectSpread","children","_jsx","d","fill","defaultProps","width","height","viewBox","xmlns","sanitize","DOMPurify","FallbackComponent","_useTranslation","useTranslation","t","useEffect","listener","e","_e$target","isNil","state","window","location","href","target","addEventListener","removeEventListener","className","Typography","component","style","weight","Trans","i18nKey","components","reloading","Button","onClick","reload","contactus","_window$NeetoChat","_window$NeetoChat$con","_window$NeetoChat2","_window$NeetoChat2$co","NeetoChat","contextualHelp","maximizeWidget","openWidget"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { _ as _defineProperty } from '../../defineProperty-CEd-kZQW.js';
|
|
2
2
|
import { useEffect } from 'react';
|
|
3
|
-
import
|
|
3
|
+
import DOMPurify from 'dompurify';
|
|
4
4
|
import Button from '@bigbinary/neetoui/Button';
|
|
5
5
|
import Typography from '@bigbinary/neetoui/Typography';
|
|
6
6
|
import { isNil } from 'ramda';
|
|
@@ -40,6 +40,7 @@ FallbackComponentImage.defaultProps = {
|
|
|
40
40
|
"'data-testid'": "fallback-svg",
|
|
41
41
|
xmlns: "http://www.w3.org/2000/svg"
|
|
42
42
|
};
|
|
43
|
+
var sanitize = DOMPurify.sanitize;
|
|
43
44
|
var FallbackComponent = function FallbackComponent() {
|
|
44
45
|
var _useTranslation = useTranslation(),
|
|
45
46
|
t = _useTranslation.t;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FallbackComponent.js","sources":["../../../src/react-utils/HoneybadgerErrorBoundary/FallbackComponent.jsx"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport FallbackComponentImage from \"assets/images/fallback-component.svg\";\nimport
|
|
1
|
+
{"version":3,"file":"FallbackComponent.js","sources":["../../../src/react-utils/HoneybadgerErrorBoundary/FallbackComponent.jsx"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport FallbackComponentImage from \"assets/images/fallback-component.svg\";\nimport DOMPurify from \"dompurify\";\nimport { Button, Typography } from \"neetoui\";\nimport { isNil } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nconst sanitize = DOMPurify.sanitize;\n\nconst FallbackComponent = () => {\n const { t } = useTranslation();\n\n useEffect(() => {\n const listener = e => {\n if (isNil(e.state)) return;\n window.location.href = sanitize(e.target?.location.href);\n };\n window.addEventListener(\"popstate\", listener);\n\n return () => window.removeEventListener(\"popstate\", listener);\n }, []);\n\n return (\n <div className=\"flex h-screen w-full flex-row items-start justify-start\">\n <div className=\"m-auto text-center\">\n <div className=\"m-auto mb-8 flex items-center justify-center\">\n <FallbackComponentImage />\n </div>\n <Typography\n className=\"mb-4\"\n component=\"h2\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {t(\"neetoCommons.fallbackComponent.somethingWentWrong\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-600 mb-8\"\n component=\"p\"\n style=\"body1\"\n weight=\"normal\"\n >\n <Trans\n i18nKey=\"neetoCommons.fallbackComponent.description\"\n components={{\n reloading: (\n <Button style=\"link\" onClick={() => window.location.reload()} />\n ),\n contactus: (\n <Button\n style=\"link\"\n onClick={() => {\n window.NeetoChat?.contextualHelp?.maximizeWidget();\n window.NeetoChat?.contextualHelp?.openWidget();\n }}\n />\n ),\n }}\n />\n </Typography>\n </div>\n </div>\n );\n};\n\nexport default FallbackComponent;\n"],"names":["FallbackComponentImage","props","_jsxs","_objectSpread","children","_jsx","d","fill","defaultProps","width","height","viewBox","xmlns","sanitize","DOMPurify","FallbackComponent","_useTranslation","useTranslation","t","useEffect","listener","e","_e$target","isNil","state","window","location","href","target","addEventListener","removeEventListener","className","Typography","component","style","weight","Trans","i18nKey","components","reloading","Button","onClick","reload","contactus","_window$NeetoChat","_window$NeetoChat$con","_window$NeetoChat2","_window$NeetoChat2$co","NeetoChat","contextualHelp","maximizeWidget","openWidget"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-commons-frontend",
|
|
3
|
-
"version": "4.13.
|
|
3
|
+
"version": "4.13.1",
|
|
4
4
|
"description": "A package encapsulating common code across neeto projects including initializers, utility functions, common components and hooks and so on.",
|
|
5
5
|
"repository": "git@github.com:bigbinary/neeto-commons-frontend.git",
|
|
6
6
|
"author": "Amaljith K <amaljith.k@bigbinary.com>",
|
|
@@ -123,6 +123,7 @@
|
|
|
123
123
|
"@testing-library/react-hooks": "^8.0.0",
|
|
124
124
|
"@testing-library/user-event": "13.5.0",
|
|
125
125
|
"@tippyjs/react": "4.2.6",
|
|
126
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
126
127
|
"antd": "5.16.0",
|
|
127
128
|
"autoprefixer": "^10.4.5",
|
|
128
129
|
"avvvatars-react": "0.4.2",
|
|
@@ -206,6 +207,7 @@
|
|
|
206
207
|
"unified": "11.0.0",
|
|
207
208
|
"util": "^0.12.5",
|
|
208
209
|
"uuid": "10.0.0",
|
|
210
|
+
"vite": "^6.0.3",
|
|
209
211
|
"yup": "0.32.11",
|
|
210
212
|
"zustand": "4.3.2"
|
|
211
213
|
},
|
|
@@ -222,10 +224,12 @@
|
|
|
222
224
|
"@honeybadger-io/js": "^6.4.1",
|
|
223
225
|
"@honeybadger-io/react": "^6.1.3",
|
|
224
226
|
"@rails/actioncable": "7.2.100",
|
|
227
|
+
"@svgr/rollup": "8.1.0",
|
|
225
228
|
"@tailwindcss/container-queries": "^0.1.1",
|
|
226
229
|
"@tanstack/react-query": "5.40.0",
|
|
227
230
|
"@tanstack/react-query-devtools": "5.40.0",
|
|
228
231
|
"@tippyjs/react": "4.2.6",
|
|
232
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
229
233
|
"antd": "5.16.0",
|
|
230
234
|
"autoprefixer": "^10.4.5",
|
|
231
235
|
"avvvatars-react": "0.4.2",
|
|
@@ -261,6 +265,7 @@
|
|
|
261
265
|
"tailwindcss": "^3.4.1",
|
|
262
266
|
"util": "^0.12.5",
|
|
263
267
|
"uuid": "10.0.0",
|
|
268
|
+
"vite": "^6.0.3",
|
|
264
269
|
"webpack": "^5.75.0",
|
|
265
270
|
"yup": "0.32.11",
|
|
266
271
|
"zustand": "4.3.2"
|