@natoora-libs/core 0.1.2 → 0.1.3
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/package.json +10 -11
- package/dist/chunk-5WRI5ZAA.js +0 -31
- package/dist/chunk-5WRI5ZAA.js.map +0 -1
- package/dist/chunk-6VEWNVPA.js +0 -23
- package/dist/chunk-6VEWNVPA.js.map +0 -1
- package/dist/chunk-ZYZWAAFL.js +0 -275
- package/dist/chunk-ZYZWAAFL.js.map +0 -1
- package/dist/components/index.cjs +0 -8620
- package/dist/components/index.cjs.map +0 -1
- package/dist/components/index.d.cts +0 -1031
- package/dist/components/index.d.ts +0 -1031
- package/dist/components/index.js +0 -8386
- package/dist/components/index.js.map +0 -1
- package/dist/hooks/index.cjs +0 -66
- package/dist/hooks/index.cjs.map +0 -1
- package/dist/hooks/index.d.cts +0 -7
- package/dist/hooks/index.d.ts +0 -7
- package/dist/hooks/index.js +0 -26
- package/dist/hooks/index.js.map +0 -1
- package/dist/index.cjs +0 -26
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -3
- package/dist/index.d.ts +0 -3
- package/dist/index.js +0 -8
- package/dist/index.js.map +0 -1
- package/dist/providers/index.cjs +0 -451
- package/dist/providers/index.cjs.map +0 -1
- package/dist/providers/index.d.cts +0 -37
- package/dist/providers/index.d.ts +0 -37
- package/dist/providers/index.js +0 -154
- package/dist/providers/index.js.map +0 -1
|
@@ -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 };
|
package/dist/providers/index.js
DELETED
|
@@ -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"]}
|