@natoora-libs/core 0.1.7 → 0.1.8-dev-doug-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.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/providers/index.ts","../../src/providers/ErrorProvider/ErrorProvider.tsx","../../src/providers/FeedbackProvider/FeedbackProvider.tsx","../../src/providers/LoadingProvider/LoadingProvider.tsx","../../src/components/Loading/Loading.tsx","../../src/resources/styles/colors/darkPalette.ts","../../src/resources/styles/colors/lightPalette.ts","../../src/resources/styles/colors.ts"],"sourcesContent":["export { ErrorProvider, useError } from './ErrorProvider/ErrorProvider';\nexport {\n FeedbackProvider,\n useFeeback,\n} from './FeedbackProvider/FeedbackProvider';\nexport { LoadingProvider, useLoading } from './LoadingProvider/LoadingProvider';\n","import { createContext, ReactNode, useContext, useMemo } from 'react';\n\nimport { useFeeback } from '../FeedbackProvider/FeedbackProvider';\n\nconst DefaultValue = {\n // eslint-disable-next-line no-unused-vars\n setError: (error) => {},\n};\n\nconst ErrorContent = createContext(DefaultValue);\n\nconst useError = () => useContext(ErrorContent);\n\ninterface ErrorProviderProps {\n children: ReactNode;\n}\n\nconst ErrorProvider = ({ children }: ErrorProviderProps) => {\n const { setFeedback } = useFeeback();\n\n /**\n * Usually, errors will come as an AxiosResponse\n * Sometimes error will have a message property\n * @see https://axios-http.com/docs/res_schema\n */\n const handleErrorChange = (error) => {\n if (error?.message) {\n setFeedback({\n message: error.message,\n type: 'error',\n });\n return;\n }\n\n if (error?.response) {\n setFeedback({\n message: `${error.response.status}: ${error.response.data.detail}`,\n type: 'error',\n });\n return;\n }\n\n if (typeof error === 'string') {\n setFeedback({\n message: error,\n type: 'error',\n });\n }\n };\n\n const providerValue = useMemo(\n () => ({\n setError: handleErrorChange,\n }),\n [],\n );\n\n return (\n <ErrorContent.Provider value={providerValue}>\n {children}\n </ErrorContent.Provider>\n );\n};\n\nexport { ErrorProvider, useError };\n","import { createContext, ReactNode, useContext, useMemo, useState } from 'react';\n\nimport { Alert as MuiAlert, Snackbar } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst DefaultValue = {\n /**\n * @param {object} arguments\n * @param {string} arguments.message - Content of the feedback\n * @param {string} arguments.type - Type of the feedback. Can be either: success | error\n */\n // eslint-disable-next-line no-unused-vars\n setFeedback: ({ message, type }) => {},\n};\n\nconst FeedbackContent = createContext(DefaultValue);\n\nconst useFeeback = () => useContext(FeedbackContent);\n\nconst useStyles = makeStyles()(() => ({\n alert: {\n /**\n * To avoid changing the success color directly from palette\n * I decided to override the color only here, just to not create design issues\n */\n '&.MuiAlert-filled.MuiAlert-colorSuccess': {\n backgroundColor: '#2E7D32;',\n },\n },\n}));\n\ninterface FeedbackProviderProps {\n children: ReactNode;\n}\n\nconst FeedbackProvider = ({ children }: FeedbackProviderProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const [message, setMessage] = useState('');\n const [type, setType] = useState('');\n\n const handleFeedbackChange = (feedback) => {\n setMessage(feedback.message);\n setType(feedback.type);\n setIsOpen(true);\n };\n\n const handleClose = () => {\n setIsOpen(false);\n };\n\n const { classes } = useStyles();\n\n const providerValue = useMemo(\n () => ({\n setFeedback: handleFeedbackChange,\n }),\n [],\n );\n\n return (\n <FeedbackContent.Provider value={providerValue}>\n {children}\n <Snackbar\n anchorOrigin={{ vertical: 'top', horizontal: 'right' }}\n autoHideDuration={5000}\n onClose={handleClose}\n open={isOpen}\n >\n <MuiAlert\n className={classes.alert}\n onClose={handleClose}\n severity={type as any}\n variant=\"filled\"\n >\n {message}\n </MuiAlert>\n </Snackbar>\n </FeedbackContent.Provider>\n );\n};\n\nexport { FeedbackProvider, useFeeback };\n","/* eslint-disable no-unused-vars */\nimport { createContext, ReactNode, useContext, useMemo, useState } from 'react';\n\nimport Loading from '@/components/Loading/Loading';\n\nconst DefaultValue = {\n isLoading: false,\n setLoading: (isLoading) => {},\n};\n\nconst LoadingContext = createContext(DefaultValue);\n\nconst useLoading = () => useContext(LoadingContext);\n\ninterface LoadingProviderProps {\n children: ReactNode;\n}\n\nconst LoadingProvider = ({ children }: LoadingProviderProps) => {\n const [isLoading, setIsLoading] = useState(false);\n\n const providerValue = useMemo(\n () => ({\n isLoading,\n setLoading: setIsLoading,\n }),\n [],\n );\n\n return (\n <LoadingContext.Provider value={providerValue}>\n {children}\n <Loading isLoading={isLoading} />\n </LoadingContext.Provider>\n );\n};\n\nexport { LoadingProvider, useLoading };\n","import { Backdrop, CircularProgress } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nimport { isDarkModeEnabled } from '@/resources/styles/colors';\n\nconst useStyles = makeStyles()(() => ({\n wrapper: {\n /**\n * MUI Dialogs have z-index = 1300\n */\n zIndex: 1301,\n backgroundColor: isDarkModeEnabled\n ? 'rgba(0, 0, 0, 0.5)'\n : 'rgba(255, 255, 255, 0.8)',\n },\n}));\n\ninterface ILoading {\n isLoading: boolean;\n}\n\nconst Loading = ({ isLoading }: ILoading) => {\n const { classes } = useStyles();\n\n return (\n <Backdrop\n aria-hidden={!isLoading}\n className={classes.wrapper}\n open={isLoading}\n data-testid=\"backdrop-loading\"\n >\n <CircularProgress color=\"primary\" />\n </Backdrop>\n );\n};\n\nexport default Loading;\n","import { ThemePalette } from './interface';\n\n/**\n * Define the dark palette using the same ThemePalette interface.\n * Any missing or extra keys compared to lightPalette will trigger a TypeScript error.\n */\nconst darkPalette: ThemePalette = {\n // General colors\n white: '#FFFFFF',\n black: '#000000',\n\n // Neutral\n neutral50: '#1C1B1A',\n neutral100: '#1F1F1F',\n neutral150: '#262626',\n neutral200: '#2E2E2E',\n neutral250: '#383838',\n neutral300: '#424242',\n neutral400: '#4C4C4C',\n neutral500: '#666666',\n neutral600: '#808080',\n neutral700: '#A3A3A3',\n neutral750: '#B3B3B3',\n neutral800: '#CCCCCC',\n neutral900: '#F5F5F5',\n\n // Input and contrast\n contrast: '#FFFFFF',\n constrastOpacity50: 'rgba(255,255,255,0.5)',\n\n // Icon and Material UI colors\n iconSearch: '#B0B0B0',\n default: '#444444',\n muiPrimary: '#E9FB62',\n muiPrimaryBlack: '#FFFFFF',\n lightMuiPrimaryColorBackground: '#e9fb6214',\n lightBlueBackground: '#e9fb6214',\n muiPrimaryAlternate: '#07BAF1',\n muiPrimaryHover: '#1890d5',\n muiSecondary: '#DE5B99',\n muiSecondaryAlternate: '#EC613C',\n muiSuccess: '#66BB6A',\n muiSuccessAlternate: '#81C784',\n\n // Transparency variants\n blackOpacity10: 'inherit',\n blackOpacity20: 'inherit',\n blackOpacity30: 'inherit',\n blackOpacity50: 'inherit',\n blackOpacity80: 'inherit',\n primaryOpacity10: 'rgba(233, 251, 98, 0.10)',\n primaryOpacity20: 'rgba(233, 251, 98, 0.20)',\n primaryOpacity30: 'rgba(233, 251, 98, 0.30)',\n secondaryAlternateOpacity30: 'rgba(236, 97, 60, .3)',\n blueOpacity08: 'rgba(25, 118, 210, 0.08)',\n whiteOpacity10: 'rgba(255,255,255,0.1)',\n whiteOpacity20: 'rgba(255,255,255,0.2)',\n whiteOpacity40: 'rgba(255,255,255,0.4)',\n\n // Table rows and top bar\n topBar: '#2e3133',\n\n // Button colors\n // Round Button (default)\n buttonHoverBackground: 'rgba(255, 255, 255, 0.08)',\n // Active Button\n buttonActiveText: '#E9FB62',\n // Contrast Button\n buttonContrastBorder: '#CECECE',\n buttonContrastText: '#CECECE',\n\n // Error Button\n error: '#EF5350',\n};\n\nexport default darkPalette;\n","import { ThemePalette } from './interface';\n\n/**\n * Define the light palette using the ThemePalette interface.\n */\nconst lightPalette: ThemePalette = {\n // General colors\n white: '#FFFFFF',\n black: '#000000',\n\n // Neutral\n neutral50: '#F0EBE6',\n neutral100: '#FAFAFA',\n neutral150: '#F4F4F4',\n neutral200: '#F1F1F1',\n neutral250: '#ECECEC',\n neutral300: '#E0E0E0',\n neutral400: '#C8C8C8',\n neutral500: '#BDBDBD',\n neutral600: '#999999',\n neutral700: '#878787',\n neutral750: '#6c6c6c',\n neutral800: '#555555',\n neutral900: '#4D4D4D',\n\n // Input and contrast\n contrast: '#000000',\n constrastOpacity50: 'rgba(0,0,0,0.5)',\n\n // Icon and Material UI colors\n iconSearch: '#606060',\n default: '#E0E0E0',\n muiPrimary: '#0781CE',\n muiPrimaryBlack: '#000000',\n lightMuiPrimaryColorBackground: '#eff4fb',\n lightBlueBackground: '#eff4fb',\n muiPrimaryAlternate: '#07BAF1',\n muiPrimaryHover: '#1565c0',\n muiSecondary: '#A42966',\n muiSecondaryAlternate: '#EC613C',\n muiSuccess: '#4caf50',\n muiSuccessAlternate: '#357a38',\n\n // Transparency variants\n blackOpacity10: 'rgba(0,0,0,0.1)',\n blackOpacity20: 'rgba(0,0,0,0.2)',\n blackOpacity30: 'rgba(0,0,0,0.3)',\n blackOpacity50: 'rgba(0,0,0,0.5)',\n blackOpacity80: 'rgba(0,0,0,0.8)',\n primaryOpacity10: 'rgba(7, 129, 206, 0.10)',\n primaryOpacity20: 'rgba(7, 129, 206, 0.20)',\n primaryOpacity30: 'rgba(7, 129, 206, 0.30)',\n secondaryAlternateOpacity30: 'rgba(236, 97, 60, 0.3)',\n blueOpacity08: 'rgba(25, 118, 210, 0.08)',\n whiteOpacity10: 'rgba(255,255,255,0.1)',\n whiteOpacity20: 'rgba(255,255,255,0.2)',\n whiteOpacity40: 'rgba(255,255,255,0.4)',\n\n // Table rows and top bar\n topBar: '#2e3133',\n\n // Button colors\n // Round Button (default)\n buttonHoverBackground: 'rgba(0, 0, 0, 0.04)',\n // Active Button\n buttonActiveText: '#0781CE',\n // Contrast Button\n buttonContrastBorder: '#CECECE',\n buttonContrastText: '#CECECE',\n\n // Error Button\n error: '#D32F2F',\n};\n\nexport default lightPalette;\n","import darkPalette from './colors/darkPalette';\nimport lightPalette from './colors/lightPalette';\n\nconst stylesheet = localStorage.getItem('@stylesheet');\nexport const isDarkModeEnabled = stylesheet === 'styles/style-dark.css';\nconst palette = isDarkModeEnabled ? darkPalette : lightPalette;\n\ninterface Colors {\n // General colors\n white: string;\n black: string;\n\n // Neutral\n neutral50: string;\n neutral100: string;\n neutral150: string;\n neutral200: string;\n neutral250: string;\n neutral300: string;\n neutral400: string;\n neutral500: string;\n neutral600: string;\n neutral700: string;\n neutral750: string;\n neutral800: string;\n neutral900: string;\n\n // Input and contrast\n contrast: string;\n constrastOpacity50: string;\n\n // Icon and Material UI colors\n iconSearch: string;\n default: string;\n muiPrimary: string;\n muiPrimaryBlack: string;\n lightMuiPrimaryColorBackground: string;\n lightBlueBackground: string;\n muiPrimaryAlternate: string;\n muiPrimaryHover: string;\n muiSecondary: string;\n muiSecondaryAlternate: string;\n muiSuccess: string;\n muiSuccessAlternate: string;\n\n // Transparency\n blackOpacity10: string;\n blackOpacity20: string;\n blackOpacity30: string;\n blackOpacity50: string;\n blackOpacity80: string;\n primaryOpacity10: string;\n primaryOpacity20: string;\n primaryOpacity30: string;\n secondaryAlternateOpacity30: string;\n blueOpacity08: string;\n whiteOpacity10: string;\n whiteOpacity20: string;\n whiteOpacity40: string;\n\n // Table rows and top bar\n topBar: string;\n // Error Button\n error: string;\n\n roundButton: {\n default: {\n border: string;\n color: string;\n disabled: {\n color: string;\n };\n hover: {\n background: string;\n };\n };\n filled: {\n background: string;\n color: string;\n hover: {\n background: string;\n };\n };\n active: {\n color: string;\n hover: {\n background: string;\n };\n };\n contrast: {\n border: string;\n color: string;\n hover: {\n background: string;\n };\n };\n tableButton: {\n color: string;\n };\n focused: {\n background: string;\n color: string;\n hover: {\n background: string;\n };\n };\n error: string;\n };\n\n movementCard: {\n default: {\n background: string;\n };\n disabled: {\n background: string;\n };\n pill: {\n color: string;\n background: string;\n };\n };\n\n rowProductCard: {\n locationSubtitle: string;\n };\n}\n\nexport const colors: Colors = {\n white: palette.white,\n black: palette.black,\n\n neutral50: palette.neutral50,\n neutral100: palette.neutral100,\n neutral150: palette.neutral150,\n neutral200: palette.neutral200,\n neutral250: palette.neutral250,\n neutral300: palette.neutral300,\n neutral400: palette.neutral400,\n neutral500: palette.neutral500,\n neutral600: palette.neutral600,\n neutral700: palette.neutral700,\n neutral750: palette.neutral750,\n neutral800: palette.neutral800,\n neutral900: palette.neutral900,\n\n // Input and contrast\n contrast: palette.contrast,\n constrastOpacity50: palette.constrastOpacity50,\n\n iconSearch: palette.iconSearch,\n default: palette.default,\n muiPrimary: palette.muiPrimary,\n muiPrimaryBlack: palette.muiPrimaryBlack,\n lightMuiPrimaryColorBackground: palette.lightMuiPrimaryColorBackground,\n lightBlueBackground: palette.lightBlueBackground,\n muiPrimaryAlternate: palette.muiPrimaryAlternate,\n muiPrimaryHover: palette.muiPrimaryHover,\n muiSecondary: palette.muiSecondary,\n muiSecondaryAlternate: palette.muiSecondaryAlternate,\n muiSuccess: palette.muiSuccess,\n muiSuccessAlternate: palette.muiSuccessAlternate,\n\n // Transparency\n blackOpacity10: palette.blackOpacity10,\n blackOpacity20: palette.blackOpacity20,\n blackOpacity30: palette.blackOpacity30,\n blackOpacity50: palette.blackOpacity50,\n blackOpacity80: palette.blackOpacity80,\n primaryOpacity10: palette.primaryOpacity10,\n primaryOpacity20: palette.primaryOpacity20,\n primaryOpacity30: palette.primaryOpacity30,\n secondaryAlternateOpacity30: palette.secondaryAlternateOpacity30,\n blueOpacity08: palette.blueOpacity08,\n whiteOpacity10: palette.whiteOpacity10,\n whiteOpacity20: palette.whiteOpacity20,\n whiteOpacity40: palette.whiteOpacity40,\n\n topBar: palette.topBar,\n error: palette.error,\n\n roundButton: {\n default: {\n border: palette.neutral600,\n color: palette.contrast,\n disabled: {\n color: palette.blackOpacity20,\n },\n hover: {\n background: palette.buttonHoverBackground,\n },\n },\n filled: {\n background: palette.neutral100,\n color: palette.blackOpacity80,\n hover: {\n background: palette.neutral250,\n },\n },\n active: {\n color: palette.buttonActiveText,\n hover: {\n background: palette.primaryOpacity20,\n },\n },\n contrast: {\n border: palette.buttonContrastBorder,\n color: palette.buttonContrastText,\n hover: {\n background: palette.whiteOpacity10,\n },\n },\n tableButton: {\n color: palette.neutral800,\n },\n focused: {\n background: palette.primaryOpacity20,\n color: palette.buttonActiveText,\n hover: {\n background: palette.primaryOpacity30,\n },\n },\n error: palette.error,\n },\n\n movementCard: {\n default: {\n background: palette.neutral100,\n },\n disabled: {\n background: palette.neutral250,\n },\n pill: {\n color: palette.neutral200,\n background: palette.neutral600,\n },\n },\n\n rowProductCard: {\n locationSubtitle: palette.neutral800,\n },\n};\n"],"mappings":"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","names":["import_react","MuiAlert","import_jsx_runtime","DefaultValue","import_react","import_material","import_mui","import_jsx_runtime","useStyles","import_jsx_runtime","DefaultValue"]}
@@ -1,37 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ReactNode } from 'react';
3
-
4
- declare const useError: () => {
5
- setError: (error: any) => void;
6
- };
7
- interface ErrorProviderProps {
8
- children: ReactNode;
9
- }
10
- declare const ErrorProvider: ({ children }: ErrorProviderProps) => react_jsx_runtime.JSX.Element;
11
-
12
- declare const useFeeback: () => {
13
- /**
14
- * @param {object} arguments
15
- * @param {string} arguments.message - Content of the feedback
16
- * @param {string} arguments.type - Type of the feedback. Can be either: success | error
17
- */
18
- setFeedback: ({ message, type }: {
19
- message: any;
20
- type: any;
21
- }) => void;
22
- };
23
- interface FeedbackProviderProps {
24
- children: ReactNode;
25
- }
26
- declare const FeedbackProvider: ({ children }: FeedbackProviderProps) => react_jsx_runtime.JSX.Element;
27
-
28
- declare const useLoading: () => {
29
- isLoading: boolean;
30
- setLoading: (isLoading: any) => void;
31
- };
32
- interface LoadingProviderProps {
33
- children: ReactNode;
34
- }
35
- declare const LoadingProvider: ({ children }: LoadingProviderProps) => react_jsx_runtime.JSX.Element;
36
-
37
- export { ErrorProvider, FeedbackProvider, LoadingProvider, useError, useFeeback, useLoading };
@@ -1,37 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ReactNode } from 'react';
3
-
4
- declare const useError: () => {
5
- setError: (error: any) => void;
6
- };
7
- interface ErrorProviderProps {
8
- children: ReactNode;
9
- }
10
- declare const ErrorProvider: ({ children }: ErrorProviderProps) => react_jsx_runtime.JSX.Element;
11
-
12
- declare const useFeeback: () => {
13
- /**
14
- * @param {object} arguments
15
- * @param {string} arguments.message - Content of the feedback
16
- * @param {string} arguments.type - Type of the feedback. Can be either: success | error
17
- */
18
- setFeedback: ({ message, type }: {
19
- message: any;
20
- type: any;
21
- }) => void;
22
- };
23
- interface FeedbackProviderProps {
24
- children: ReactNode;
25
- }
26
- declare const FeedbackProvider: ({ children }: FeedbackProviderProps) => react_jsx_runtime.JSX.Element;
27
-
28
- declare const useLoading: () => {
29
- isLoading: boolean;
30
- setLoading: (isLoading: any) => void;
31
- };
32
- interface LoadingProviderProps {
33
- children: ReactNode;
34
- }
35
- declare const LoadingProvider: ({ children }: LoadingProviderProps) => react_jsx_runtime.JSX.Element;
36
-
37
- export { ErrorProvider, FeedbackProvider, LoadingProvider, useError, useFeeback, useLoading };
@@ -1,154 +0,0 @@
1
- import {
2
- Loading_default
3
- } from "../chunk-ZYZWAAFL.js";
4
- import "../chunk-5WRI5ZAA.js";
5
-
6
- // src/providers/ErrorProvider/ErrorProvider.tsx
7
- import { createContext as createContext2, useContext as useContext2, useMemo as useMemo2 } from "react";
8
-
9
- // src/providers/FeedbackProvider/FeedbackProvider.tsx
10
- import { createContext, useContext, useMemo, useState } from "react";
11
- import { Alert as MuiAlert, Snackbar } from "@mui/material";
12
- import { makeStyles } from "tss-react/mui";
13
- import { jsx, jsxs } from "react/jsx-runtime";
14
- var DefaultValue = {
15
- /**
16
- * @param {object} arguments
17
- * @param {string} arguments.message - Content of the feedback
18
- * @param {string} arguments.type - Type of the feedback. Can be either: success | error
19
- */
20
- // eslint-disable-next-line no-unused-vars
21
- setFeedback: ({ message, type }) => {
22
- }
23
- };
24
- var FeedbackContent = createContext(DefaultValue);
25
- var useFeeback = () => useContext(FeedbackContent);
26
- var useStyles = makeStyles()(() => ({
27
- alert: {
28
- /**
29
- * To avoid changing the success color directly from palette
30
- * I decided to override the color only here, just to not create design issues
31
- */
32
- "&.MuiAlert-filled.MuiAlert-colorSuccess": {
33
- backgroundColor: "#2E7D32;"
34
- }
35
- }
36
- }));
37
- var FeedbackProvider = ({ children }) => {
38
- const [isOpen, setIsOpen] = useState(false);
39
- const [message, setMessage] = useState("");
40
- const [type, setType] = useState("");
41
- const handleFeedbackChange = (feedback) => {
42
- setMessage(feedback.message);
43
- setType(feedback.type);
44
- setIsOpen(true);
45
- };
46
- const handleClose = () => {
47
- setIsOpen(false);
48
- };
49
- const { classes } = useStyles();
50
- const providerValue = useMemo(
51
- () => ({
52
- setFeedback: handleFeedbackChange
53
- }),
54
- []
55
- );
56
- return /* @__PURE__ */ jsxs(FeedbackContent.Provider, { value: providerValue, children: [
57
- children,
58
- /* @__PURE__ */ jsx(
59
- Snackbar,
60
- {
61
- anchorOrigin: { vertical: "top", horizontal: "right" },
62
- autoHideDuration: 5e3,
63
- onClose: handleClose,
64
- open: isOpen,
65
- children: /* @__PURE__ */ jsx(
66
- MuiAlert,
67
- {
68
- className: classes.alert,
69
- onClose: handleClose,
70
- severity: type,
71
- variant: "filled",
72
- children: message
73
- }
74
- )
75
- }
76
- )
77
- ] });
78
- };
79
-
80
- // src/providers/ErrorProvider/ErrorProvider.tsx
81
- import { jsx as jsx2 } from "react/jsx-runtime";
82
- var DefaultValue2 = {
83
- // eslint-disable-next-line no-unused-vars
84
- setError: (error) => {
85
- }
86
- };
87
- var ErrorContent = createContext2(DefaultValue2);
88
- var useError = () => useContext2(ErrorContent);
89
- var ErrorProvider = ({ children }) => {
90
- const { setFeedback } = useFeeback();
91
- const handleErrorChange = (error) => {
92
- if (error?.message) {
93
- setFeedback({
94
- message: error.message,
95
- type: "error"
96
- });
97
- return;
98
- }
99
- if (error?.response) {
100
- setFeedback({
101
- message: `${error.response.status}: ${error.response.data.detail}`,
102
- type: "error"
103
- });
104
- return;
105
- }
106
- if (typeof error === "string") {
107
- setFeedback({
108
- message: error,
109
- type: "error"
110
- });
111
- }
112
- };
113
- const providerValue = useMemo2(
114
- () => ({
115
- setError: handleErrorChange
116
- }),
117
- []
118
- );
119
- return /* @__PURE__ */ jsx2(ErrorContent.Provider, { value: providerValue, children });
120
- };
121
-
122
- // src/providers/LoadingProvider/LoadingProvider.tsx
123
- import { createContext as createContext3, useContext as useContext3, useMemo as useMemo3, useState as useState2 } from "react";
124
- import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
125
- var DefaultValue3 = {
126
- isLoading: false,
127
- setLoading: (isLoading) => {
128
- }
129
- };
130
- var LoadingContext = createContext3(DefaultValue3);
131
- var useLoading = () => useContext3(LoadingContext);
132
- var LoadingProvider = ({ children }) => {
133
- const [isLoading, setIsLoading] = useState2(false);
134
- const providerValue = useMemo3(
135
- () => ({
136
- isLoading,
137
- setLoading: setIsLoading
138
- }),
139
- []
140
- );
141
- return /* @__PURE__ */ jsxs2(LoadingContext.Provider, { value: providerValue, children: [
142
- children,
143
- /* @__PURE__ */ jsx3(Loading_default, { isLoading })
144
- ] });
145
- };
146
- export {
147
- ErrorProvider,
148
- FeedbackProvider,
149
- LoadingProvider,
150
- useError,
151
- useFeeback,
152
- useLoading
153
- };
154
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/providers/ErrorProvider/ErrorProvider.tsx","../../src/providers/FeedbackProvider/FeedbackProvider.tsx","../../src/providers/LoadingProvider/LoadingProvider.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext, useMemo } from 'react';\n\nimport { useFeeback } from '../FeedbackProvider/FeedbackProvider';\n\nconst DefaultValue = {\n // eslint-disable-next-line no-unused-vars\n setError: (error) => {},\n};\n\nconst ErrorContent = createContext(DefaultValue);\n\nconst useError = () => useContext(ErrorContent);\n\ninterface ErrorProviderProps {\n children: ReactNode;\n}\n\nconst ErrorProvider = ({ children }: ErrorProviderProps) => {\n const { setFeedback } = useFeeback();\n\n /**\n * Usually, errors will come as an AxiosResponse\n * Sometimes error will have a message property\n * @see https://axios-http.com/docs/res_schema\n */\n const handleErrorChange = (error) => {\n if (error?.message) {\n setFeedback({\n message: error.message,\n type: 'error',\n });\n return;\n }\n\n if (error?.response) {\n setFeedback({\n message: `${error.response.status}: ${error.response.data.detail}`,\n type: 'error',\n });\n return;\n }\n\n if (typeof error === 'string') {\n setFeedback({\n message: error,\n type: 'error',\n });\n }\n };\n\n const providerValue = useMemo(\n () => ({\n setError: handleErrorChange,\n }),\n [],\n );\n\n return (\n <ErrorContent.Provider value={providerValue}>\n {children}\n </ErrorContent.Provider>\n );\n};\n\nexport { ErrorProvider, useError };\n","import { createContext, ReactNode, useContext, useMemo, useState } from 'react';\n\nimport { Alert as MuiAlert, Snackbar } from '@mui/material';\nimport { makeStyles } from 'tss-react/mui';\n\nconst DefaultValue = {\n /**\n * @param {object} arguments\n * @param {string} arguments.message - Content of the feedback\n * @param {string} arguments.type - Type of the feedback. Can be either: success | error\n */\n // eslint-disable-next-line no-unused-vars\n setFeedback: ({ message, type }) => {},\n};\n\nconst FeedbackContent = createContext(DefaultValue);\n\nconst useFeeback = () => useContext(FeedbackContent);\n\nconst useStyles = makeStyles()(() => ({\n alert: {\n /**\n * To avoid changing the success color directly from palette\n * I decided to override the color only here, just to not create design issues\n */\n '&.MuiAlert-filled.MuiAlert-colorSuccess': {\n backgroundColor: '#2E7D32;',\n },\n },\n}));\n\ninterface FeedbackProviderProps {\n children: ReactNode;\n}\n\nconst FeedbackProvider = ({ children }: FeedbackProviderProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const [message, setMessage] = useState('');\n const [type, setType] = useState('');\n\n const handleFeedbackChange = (feedback) => {\n setMessage(feedback.message);\n setType(feedback.type);\n setIsOpen(true);\n };\n\n const handleClose = () => {\n setIsOpen(false);\n };\n\n const { classes } = useStyles();\n\n const providerValue = useMemo(\n () => ({\n setFeedback: handleFeedbackChange,\n }),\n [],\n );\n\n return (\n <FeedbackContent.Provider value={providerValue}>\n {children}\n <Snackbar\n anchorOrigin={{ vertical: 'top', horizontal: 'right' }}\n autoHideDuration={5000}\n onClose={handleClose}\n open={isOpen}\n >\n <MuiAlert\n className={classes.alert}\n onClose={handleClose}\n severity={type as any}\n variant=\"filled\"\n >\n {message}\n </MuiAlert>\n </Snackbar>\n </FeedbackContent.Provider>\n );\n};\n\nexport { FeedbackProvider, useFeeback };\n","/* eslint-disable no-unused-vars */\nimport { createContext, ReactNode, useContext, useMemo, useState } from 'react';\n\nimport Loading from '@/components/Loading/Loading';\n\nconst DefaultValue = {\n isLoading: false,\n setLoading: (isLoading) => {},\n};\n\nconst LoadingContext = createContext(DefaultValue);\n\nconst useLoading = () => useContext(LoadingContext);\n\ninterface LoadingProviderProps {\n children: ReactNode;\n}\n\nconst LoadingProvider = ({ children }: LoadingProviderProps) => {\n const [isLoading, setIsLoading] = useState(false);\n\n const providerValue = useMemo(\n () => ({\n isLoading,\n setLoading: setIsLoading,\n }),\n [],\n );\n\n return (\n <LoadingContext.Provider value={providerValue}>\n {children}\n <Loading isLoading={isLoading} />\n </LoadingContext.Provider>\n );\n};\n\nexport { LoadingProvider, useLoading };\n"],"mappings":"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","names":["createContext","useContext","useMemo","jsx","DefaultValue","createContext","useContext","useMemo","createContext","useContext","useMemo","useState","jsx","jsxs","DefaultValue","createContext","useContext","useState","useMemo"]}