summaryrefslogtreecommitdiffhomepage
path: root/gui/packages/components/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2018-12-08 11:15:13 -0200
committerAndrej Mihajlov <and@mullvad.net>2019-01-15 16:16:20 +0100
commitb589b008a014a2ea3733796bc31121acd391b1a6 (patch)
tree44a6ed46a7956ab224474f92b2014cbec432574a /gui/packages/components/src
parente094b526b94bf75ccf25fc5e575cc641a62071ab (diff)
downloadmullvadvpn-b589b008a014a2ea3733796bc31121acd391b1a6.tar.xz
mullvadvpn-b589b008a014a2ea3733796bc31121acd391b1a6.zip
Add custom modal container
Diffstat (limited to 'gui/packages/components/src')
-rw-r--r--gui/packages/components/src/Modal.tsx52
-rw-r--r--gui/packages/components/src/index.ts1
2 files changed, 53 insertions, 0 deletions
diff --git a/gui/packages/components/src/Modal.tsx b/gui/packages/components/src/Modal.tsx
new file mode 100644
index 0000000000..6eb070262b
--- /dev/null
+++ b/gui/packages/components/src/Modal.tsx
@@ -0,0 +1,52 @@
+import * as React from 'react';
+
+export class ModalContent extends React.Component {
+ public render() {
+ return (
+ <div
+ style={{
+ position: 'absolute',
+ display: 'flex',
+ flexDirection: 'column',
+ flex: 1,
+ top: 0,
+ left: 0,
+ right: 0,
+ bottom: 0,
+ }}>
+ {this.props.children}
+ </div>
+ );
+ }
+}
+
+export class ModalAlert extends React.Component {
+ public render() {
+ return (
+ <div
+ style={{
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ position: 'absolute',
+ display: 'flex',
+ flexDirection: 'column',
+ flex: 1,
+ top: 0,
+ left: 0,
+ right: 0,
+ bottom: 0,
+ }}>
+ {this.props.children}
+ </div>
+ );
+ }
+}
+
+interface IModalContainerProps {
+ children?: Array<React.ReactElement<ModalContent | ModalAlert>>;
+}
+
+export class ModalContainer extends React.Component<IModalContainerProps> {
+ public render() {
+ return <div style={{ position: 'relative', flex: 1 }}>{this.props.children}</div>;
+ }
+}
diff --git a/gui/packages/components/src/index.ts b/gui/packages/components/src/index.ts
index 46c4ec3195..31c5ee6fec 100644
--- a/gui/packages/components/src/index.ts
+++ b/gui/packages/components/src/index.ts
@@ -5,3 +5,4 @@ export { default as SecuredLabel, SecuredDisplayStyle } from './SecuredLabel';
export { default as HeaderBar, HeaderBarStyle, Brand, SettingsBarButton } from './HeaderBar';
export { default as SettingsHeader, HeaderTitle, HeaderSubTitle } from './SettingsHeader';
export { default as ImageView } from './ImageView';
+export { ModalContainer, ModalAlert, ModalContent } from './Modal';