Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
beasy-mobile
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
4
Issues
4
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
G
beasy-mobile
Commits
e6f5c06d
Commit
e6f5c06d
authored
May 27, 2024
by
G
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
a better atlernative for modals, the modal to show is provided to the function showModal.
parent
e9a622bf
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
1 deletion
+21
-1
ModalsManagerContext.tsx
src/contexts/ModalsManagerContext.tsx
+21
-1
No files found.
src/contexts/ModalsManagerContext.tsx
View file @
e6f5c06d
...
@@ -8,6 +8,9 @@ export interface ImodalsManagerContext {
...
@@ -8,6 +8,9 @@ export interface ImodalsManagerContext {
closeLoadingModal
():
void
;
closeLoadingModal
():
void
;
showErrorModal
():
void
;
showErrorModal
():
void
;
closeErrorModal
():
void
;
closeErrorModal
():
void
;
showModal
(
element
:
React
.
ReactElement
):
void
;
closeModal
():
void
;
}
}
export
const
ModalsManagerContext
=
createContext
<
ImodalsManagerContext
>
({
export
const
ModalsManagerContext
=
createContext
<
ImodalsManagerContext
>
({
...
@@ -15,6 +18,8 @@ export const ModalsManagerContext = createContext<ImodalsManagerContext>({
...
@@ -15,6 +18,8 @@ export const ModalsManagerContext = createContext<ImodalsManagerContext>({
closeLoadingModal
:
()
=>
{},
closeLoadingModal
:
()
=>
{},
showErrorModal
:
()
=>
{},
showErrorModal
:
()
=>
{},
closeErrorModal
:
()
=>
{},
closeErrorModal
:
()
=>
{},
showModal
:
()
=>
{},
closeModal
:
()
=>
{},
});
});
export
const
ModalsManagerProvider
=
({
children
}:
{
children
:
React
.
ReactNode
})
=>
{
export
const
ModalsManagerProvider
=
({
children
}:
{
children
:
React
.
ReactNode
})
=>
{
...
@@ -22,6 +27,8 @@ export const ModalsManagerProvider = ({ children }: { children: React.ReactNode
...
@@ -22,6 +27,8 @@ export const ModalsManagerProvider = ({ children }: { children: React.ReactNode
const
[
loadingModalVisible
,
setLoadingModalVisible
]
=
useState
(
false
);
const
[
loadingModalVisible
,
setLoadingModalVisible
]
=
useState
(
false
);
const
[
errorModalVisible
,
setErrorModalVisible
]
=
useState
(
false
);
const
[
errorModalVisible
,
setErrorModalVisible
]
=
useState
(
false
);
const
[
modalElement
,
setModalElement
]
=
useState
<
React
.
ReactElement
|
null
>
(
null
);
const
showLoadingModal
=
()
=>
{
const
showLoadingModal
=
()
=>
{
setShowBackdrop
(
true
);
setShowBackdrop
(
true
);
setLoadingModalVisible
(
true
);
setLoadingModalVisible
(
true
);
...
@@ -42,6 +49,16 @@ export const ModalsManagerProvider = ({ children }: { children: React.ReactNode
...
@@ -42,6 +49,16 @@ export const ModalsManagerProvider = ({ children }: { children: React.ReactNode
setErrorModalVisible
(
false
);
setErrorModalVisible
(
false
);
};
};
const
showModal
=
(
element
:
React
.
ReactElement
)
=>
{
setModalElement
(
element
);
setShowBackdrop
(
true
);
};
const
closeModal
=
()
=>
{
setModalElement
(
null
);
setShowBackdrop
(
false
);
};
return
(
return
(
<
ModalsManagerContext
.
Provider
<
ModalsManagerContext
.
Provider
value=
{
{
value=
{
{
...
@@ -49,10 +66,13 @@ export const ModalsManagerProvider = ({ children }: { children: React.ReactNode
...
@@ -49,10 +66,13 @@ export const ModalsManagerProvider = ({ children }: { children: React.ReactNode
closeLoadingModal
,
closeLoadingModal
,
showErrorModal
,
showErrorModal
,
closeErrorModal
,
closeErrorModal
,
showModal
,
closeModal
,
}
}
}
}
>
>
{
children
}
{
children
}
{
showBackdrop
&&
<
OverlayBackdrop
/>
}
{
showBackdrop
&&
<
OverlayBackdrop
/>
}
{
modalElement
&&
modalElement
}
{
loadingModalVisible
&&
<
LoadingModal
/>
}
{
loadingModalVisible
&&
<
LoadingModal
/>
}
{
errorModalVisible
&&
<
ErrorModal
/>
}
{
errorModalVisible
&&
<
ErrorModal
/>
}
...
@@ -60,7 +80,7 @@ export const ModalsManagerProvider = ({ children }: { children: React.ReactNode
...
@@ -60,7 +80,7 @@ export const ModalsManagerProvider = ({ children }: { children: React.ReactNode
);
);
};
};
export
const
use
Overlay
Context
=
()
=>
{
export
const
use
ModalsManager
Context
=
()
=>
{
return
useContext
(
ModalsManagerContext
);
return
useContext
(
ModalsManagerContext
);
};
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment