Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
purescript-gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
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
Christian Merten
purescript-gargantext
Commits
bab4da66
Verified
Commit
bab4da66
authored
Apr 03, 2024
by
Przemyslaw Kaminski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[bootstrap] allow to close modals with 'Esc' keypress
parent
26cb04b3
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
32 additions
and
7 deletions
+32
-7
BaseModal.js
src/Gargantext/Components/Bootstrap/Floaty/BaseModal.js
+10
-2
BaseModal.purs
src/Gargantext/Components/Bootstrap/Floaty/BaseModal.purs
+22
-5
No files found.
src/Gargantext/Components/Bootstrap/Floaty/BaseModal.js
View file @
bab4da66
...
@@ -6,8 +6,16 @@
...
@@ -6,8 +6,16 @@
* @param {string} querySelector
* @param {string} querySelector
* @unpure {Object} window.$
* @unpure {Object} window.$
*/
*/
export
function
_show
(
window
,
querySelector
)
{
export
function
_show
(
window
,
querySelector
,
events
)
{
window
.
$
(
querySelector
).
modal
(
'show'
);
let
$modal
=
window
.
$
(
querySelector
);
$modal
.
modal
(
'show'
);
console
.
log
(
'events'
,
events
);
if
(
events
.
onHide
)
{
$modal
.
on
(
'hidden.bs.modal'
,
events
.
onHide
());
}
if
(
events
.
onShow
)
{
$modal
.
on
(
'shown.bs.modal'
,
events
.
onShow
());
}
}
}
/**
/**
* @function hide
* @function hide
...
...
src/Gargantext/Components/Bootstrap/Floaty/BaseModal.purs
View file @
bab4da66
...
@@ -10,7 +10,7 @@ import Data.Foldable (intercalate)
...
@@ -10,7 +10,7 @@ import Data.Foldable (intercalate)
import Data.Maybe (Maybe(..))
import Data.Maybe (Maybe(..))
import Data.UUID as UUID
import Data.UUID as UUID
import Effect (Effect)
import Effect (Effect)
import Effect.Uncurried (EffectFn2,
runEffectFn2
)
import Effect.Uncurried (EffectFn2,
EffectFn3, runEffectFn2, runEffectFn3
)
import Gargantext.Components.Bootstrap.IconButton (iconButton)
import Gargantext.Components.Bootstrap.IconButton (iconButton)
import Gargantext.Components.Bootstrap.Types (Elevation(..), ModalSizing(..))
import Gargantext.Components.Bootstrap.Types (Elevation(..), ModalSizing(..))
import Gargantext.Hooks.UpdateEffect (useUpdateEffect1')
import Gargantext.Hooks.UpdateEffect (useUpdateEffect1')
...
@@ -20,16 +20,29 @@ import Reactix as R
...
@@ -20,16 +20,29 @@ import Reactix as R
import Reactix.DOM.HTML as H
import Reactix.DOM.HTML as H
import Toestand as T
import Toestand as T
foreign import _show :: EffectFn2
here :: R2.Here
here = R2.here "Gargantext.Components.Bootstrap.BaseModal"
type ModalCallback = Unit -> Effect Unit
type ModalEvents =
( onHide :: ModalCallback
, onShow :: ModalCallback )
foreign import _show :: EffectFn3
Window
Window
String
String
(Record ModalEvents)
Unit
Unit
showModal ::
showModal ::
Window
Window
-> String
-> String
-> Record ModalEvents
-> Effect Unit
-> Effect Unit
showModal = runEffectFn
2
_show
showModal = runEffectFn
3
_show
foreign import _hide :: EffectFn2
foreign import _hide :: EffectFn2
Window
Window
...
@@ -118,9 +131,13 @@ component = R.memo' $ R.hooksComponent componentName cpt where
...
@@ -118,9 +131,13 @@ component = R.memo' $ R.hooksComponent componentName cpt where
-- | Hooks
-- | Hooks
-- |
-- |
let modalEvents = {
onHide: \_ -> T.write_ false isVisibleBox
, onShow: \_ -> T.write_ true isVisibleBox
}
useUpdateEffect1' isVisible
useUpdateEffect1' isVisible
if isVisible
if isVisible
then showModal window selector
then showModal window selector
modalEvents
else hideModal window selector
else hideModal window selector
-- | Behaviors
-- | Behaviors
...
@@ -138,7 +155,7 @@ component = R.memo' $ R.hooksComponent componentName cpt where
...
@@ -138,7 +155,7 @@ component = R.memo' $ R.hooksComponent componentName cpt where
, tabIndex: "-1"
, tabIndex: "-1"
, key: id
, key: id
, data:
, data:
{ keyboard: "
fals
e"
{ keyboard: "
tru
e"
, backdrop: hasCollapsibleBackground ?
, backdrop: hasCollapsibleBackground ?
"true" $
"true" $
"static"
"static"
...
...
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