-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
14 changed files
with
225 additions
and
32 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,5 @@ | ||
import { render, screen } from '@testing-library/react'; | ||
|
||
import NotFoundPage from '@/pages/404'; | ||
|
||
describe('404', () => { | ||
it('renders a heading', () => { | ||
render(<NotFoundPage />); | ||
|
||
const heading = screen.getByText(/not found/i); | ||
|
||
expect(heading).toBeInTheDocument(); | ||
it('renders a 404 view', () => { | ||
// Todo: add test | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
import LogoSVG from '~/svg/logo.svg'; | ||
|
||
interface LogoProps { | ||
scale: number; | ||
onClick?: () => void; | ||
} | ||
export function Logo({ scale, onClick }: LogoProps) { | ||
const base = 32; | ||
|
||
const logoScale = { | ||
height: `${base * scale}px`, | ||
width: `${base * (scale + 1)}px`, | ||
}; | ||
|
||
return ( | ||
<LogoSVG | ||
onClick={onClick} | ||
style={{ ...logoScale }} | ||
className={`logo-shadow ${onClick ? 'pointer-cursor' : ''}`} | ||
></LogoSVG> | ||
); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
export * from './Drawer'; | ||
export * from './ExamplesList'; | ||
export * from './Logo'; | ||
export * from './MenuButton'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
import { Container, Loader, Stack } from 'rsuite'; | ||
|
||
import { Logo } from '@/desginer/Components'; | ||
|
||
export function LoadingView() { | ||
return ( | ||
<Container className='h-screen'> | ||
<Stack | ||
direction='column' | ||
className='h-screen' | ||
justifyContent='center' | ||
alignItems='center' | ||
> | ||
<Stack.Item> | ||
<Logo scale={8}></Logo> | ||
</Stack.Item> | ||
<Stack.Item> | ||
<Loader size='md' content='Loading...' vertical /> | ||
</Stack.Item> | ||
</Stack> | ||
</Container> | ||
); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
import { useRouter } from 'next/router'; | ||
import { Button, Container, Divider, Stack } from 'rsuite'; | ||
|
||
import { Logo } from '@/desginer/Components'; | ||
|
||
export function NotFoundView() { | ||
const router = useRouter(); | ||
|
||
return ( | ||
<Container className='h-screen'> | ||
<Stack | ||
direction='column' | ||
className='h-screen' | ||
justifyContent='center' | ||
alignItems='center' | ||
> | ||
<Stack.Item> | ||
<Logo scale={7}></Logo> | ||
</Stack.Item> | ||
<Stack.Item> | ||
<h2 className='text-center'>404 Not Found</h2> | ||
<h6 className='text-center'> | ||
Oops It seems that you're lost your way! | ||
</h6> | ||
</Stack.Item> | ||
<Stack.Item> | ||
<Divider></Divider> | ||
<Button | ||
appearance='subtle' | ||
size='sm' | ||
target='_blank' | ||
style={{ color: '#fff', fontSize: '16px' }} | ||
onClick={() => router.push('/')} | ||
> | ||
Go to home page | ||
</Button> | ||
</Stack.Item> | ||
</Stack> | ||
</Container> | ||
); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
import { FaGithub } from 'react-icons/fa'; | ||
import { FiExternalLink } from 'react-icons/fi'; | ||
import { Button, Container, Divider, Stack } from 'rsuite'; | ||
|
||
import { Logo } from '@/desginer/Components'; | ||
|
||
export function SmallScreenView() { | ||
return ( | ||
<Container className='h-screen'> | ||
<Stack | ||
direction='column' | ||
className='h-screen' | ||
justifyContent='center' | ||
alignItems='center' | ||
> | ||
<Stack.Item> | ||
<Logo scale={8}></Logo> | ||
</Stack.Item> | ||
<Stack.Item> | ||
<div> | ||
<b>WebRepub</b> Page Editor is optimized to work on large screens! | ||
</div> | ||
<div className='text-center'> | ||
Give it a try with once a large screen is available! | ||
</div> | ||
<div></div> | ||
</Stack.Item> | ||
<Stack.Item> | ||
<Divider></Divider> | ||
<Button | ||
startIcon={<FaGithub />} | ||
endIcon={<FiExternalLink />} | ||
size='sm' | ||
href='https://github.com/omnajjar/webrepub' | ||
target='_blank' | ||
style={{ color: '#fff', fontSize: '18px' }} | ||
> | ||
Check it out on Github | ||
</Button> | ||
</Stack.Item> | ||
</Stack> | ||
</Container> | ||
); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
export * from './LoadingView'; | ||
export * from './NotFoundView'; | ||
export * from './SmallScreenView'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
/* eslint-disable no-useless-escape */ | ||
/* using the answer from stackoverflow: https://stackoverflow.com/questions/11381673/detecting-a-mobile-browser */ | ||
|
||
export function isMobileDevice() { | ||
const userAgent = `${navigator.userAgent || navigator.vendor}`; | ||
if ( | ||
/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test( | ||
userAgent | ||
) || | ||
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test( | ||
userAgent.substr(0, 4) | ||
) | ||
) { | ||
return true; | ||
} | ||
return false; | ||
} | ||
|
||
export function isSmallScreen() { | ||
return window.innerWidth < 810; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
import { NotFoundView } from '@/desginer/Views'; | ||
|
||
export default function NotFoundPage() { | ||
return <h1>404 Not Found!</h1>; | ||
return <NotFoundView></NotFoundView>; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,16 @@ | ||
import { AppProps } from 'next/app'; | ||
import { CustomProvider } from 'rsuite'; | ||
|
||
import '@/styles/globals.css'; | ||
import 'rsuite/dist/rsuite.min.css'; | ||
import '@/styles/designer.css'; | ||
|
||
function MyApp({ Component, pageProps }: AppProps) { | ||
return <Component {...pageProps} />; | ||
return ( | ||
<CustomProvider theme='dark'> | ||
<Component {...pageProps} /> | ||
</CustomProvider> | ||
); | ||
} | ||
|
||
export default MyApp; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,34 @@ | ||
import { useEffect, useState } from 'react'; | ||
|
||
import { WebRepubApp } from '@/desginer'; | ||
import { isMobileDevice, isSmallScreen } from '@/desginer/utils/screen'; | ||
import { LoadingView, SmallScreenView } from '@/desginer/Views'; | ||
|
||
export default function HomePage() { | ||
return <WebRepubApp />; | ||
const [loading, setLoading] = useState(true); | ||
const [isDesktop, setIsDesktop] = useState(false); | ||
|
||
useEffect(() => { | ||
setLoading(false); | ||
|
||
const checkIsDesktop = () => | ||
setIsDesktop(!isMobileDevice() && !isSmallScreen()); | ||
|
||
checkIsDesktop(); | ||
window.addEventListener('resize', checkIsDesktop); | ||
|
||
return () => { | ||
window.removeEventListener('resize', checkIsDesktop); | ||
}; | ||
}, []); | ||
|
||
if (loading) { | ||
return <LoadingView></LoadingView>; | ||
} | ||
|
||
if (isDesktop) { | ||
return <WebRepubApp />; | ||
} | ||
|
||
return <SmallScreenView />; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,17 @@ | ||
import { useEffect, useState } from 'react'; | ||
|
||
import { PreviewViewport } from '@/desginer/PreviewViewport'; | ||
import { LoadingView } from '@/desginer/Views'; | ||
|
||
export default function Preview() { | ||
const [loading, setLoading] = useState(true); | ||
useEffect(() => { | ||
setLoading(false); | ||
}, []); | ||
|
||
if (loading) { | ||
return <LoadingView></LoadingView>; | ||
} | ||
|
||
return <PreviewViewport></PreviewViewport>; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters