2020-09-14 08:22:19 +03:00
import * as React from "react" ;
import * as Constants from "~/common/constants" ;
import { css } from "@emotion/react" ;
import { ButtonPrimary } from "~/components/system/components/Buttons" ;
import { dispatchCustomEvent } from "~/common/custom-events" ;
const STYLES _MODAL = css `
text - align : center ;
padding - bottom : 64 px ;
box - sizing : border - box ;
max - width : 680 px ;
width : 95 vw ;
2020-09-15 05:58:23 +03:00
min - height : 630 px ;
2020-09-14 08:22:19 +03:00
border - radius : 4 px ;
background - color : $ { Constants . system . white } ;
overflow : hidden ;
box - shadow : 0 0 60 px 8 px rgba ( 0 , 0 , 0 , 0.03 ) ;
` ;
const STYLES _BUTTON _SECONDARY = {
backgroundColor : Constants . system . white ,
boxShadow : ` 0 0 0 1px ${ Constants . system . brand } inset ` ,
color : Constants . system . brand ,
marginRight : 16 ,
width : 160 ,
} ;
const STYLES _IMAGE = css `
width : 100 % ;
background - color : $ { Constants . system . black } ;
` ;
const STYLES _TITLE = css `
font - family : $ { Constants . font . semiBold } ;
font - size : 32 px ;
padding - top : 40 px ;
margin - bottom : 16 px ;
` ;
const STYLES _TEXT = css `
font - family : $ { Constants . font . text } ;
font - size : 18 px ;
margin - bottom : 24 px ;
padding : 0 64 px ;
` ;
export class OnboardingModal extends React . Component {
state = {
step : 0 ,
} ;
onboardingCopy = [
{
title : "Welcome to Slate" ,
text :
"Slate is distributed file-sharing network designed for private and public storage. Drag and drop your files into the app to easily start uploading your books, images, and documents." ,
image : (
< img
src = "https://slate.textile.io/ipfs/bafybeih4yqlefcbvuuhuyddg5vyfcm7latyifexzynmnbep4dx5hapbbjq"
alt = ""
css = { STYLES _IMAGE }
/ >
) ,
button : (
< ButtonPrimary
style = { { width : 160 } }
onClick = { ( ) => this . _handleClick ( 1 ) }
>
Got it
< / B u t t o n P r i m a r y >
) ,
} ,
{
title : "Upload from Anywhere" ,
text :
"Use the Slate Chrome extension to upload images and screenshots to your account from anywhere on the web." ,
image : (
< img
src = "https://slate.textile.io/ipfs/bafybeifchvk6cxi4yl3twlontxlpkff623pcz2lhukrlzwor5rioviqsea"
alt = ""
css = { STYLES _IMAGE }
/ >
) ,
button : (
< React . Fragment >
{ / * < a h r e f = { n u l l } t a r g e t = " _ b l a n k " >
< ButtonPrimary style = { STYLES _BUTTON _SECONDARY } >
Get extension
< / B u t t o n P r i m a r y >
< /a> */ }
< ButtonPrimary
style = { { width : 160 } }
onClick = { ( ) => this . _handleClick ( 1 ) }
>
Next
< / B u t t o n P r i m a r y >
< / R e a c t . F r a g m e n t >
) ,
} ,
{
title : "Organize and share" ,
text :
"Organize your files into slates to organize research, create mood boards, and collect your thoughts to share with other people." ,
image : (
< img
src = "https://slate.textile.io/ipfs/bafybeiaiy3c72sdirjj24vvev7xpuvvqckwip3ot7l4u4iaxdlnbp4hqae"
alt = ""
css = { STYLES _IMAGE }
/ >
) ,
button : (
< ButtonPrimary
style = { { width : 160 } }
onClick = { ( ) => {
dispatchCustomEvent ( {
name : "delete-modal" ,
detail : { } ,
} ) ;
} }
>
Start using Slate
< / B u t t o n P r i m a r y >
) ,
} ,
] ;
_handleClick = ( i ) => {
this . setState ( { step : this . state . step + i } ) ;
} ;
render ( ) {
return (
< div css = { STYLES _MODAL } >
{ this . onboardingCopy [ this . state . step ] . image }
< div css = { STYLES _TITLE } >
{ this . onboardingCopy [ this . state . step ] . title }
< / d i v >
< div css = { STYLES _TEXT } > { this . onboardingCopy [ this . state . step ] . text } < / d i v >
{ this . onboardingCopy [ this . state . step ] . button }
< / d i v >
) ;
}
}