@@ -16,18 +16,22 @@ import {
1616 mainSlice as slice
1717} from "../../redux/main"
1818
19- import MainHeader from "./Header"
20- import MainContent from "./Content"
21- import LicenseWarning from "./LicenseWarningFooter"
19+ import MainHeader , { HeaderProps } from "./Header"
20+ import MainContent , { ContentProps } from "./Content"
21+ import LicenseWarning , { LicenseWarningFooterProps } from "./LicenseWarningFooter"
2222
2323const { Header, Content, Footer } = Layout
2424
25- // eslint-disable-next-line
26- export default function Main ( props : React . PropsWithChildren < { } > ) {
25+ export default ( props : React . PropsWithChildren < any > ) : JSX . Element => {
2726 const {
27+ authorized,
28+ available,
29+ expired,
30+ user,
2831 deployments,
2932 reviews,
3033 } = useAppSelector ( state => state . main , shallowEqual )
34+
3135 const dispatch = useAppDispatch ( )
3236
3337 useEffect ( ( ) => {
@@ -48,6 +52,38 @@ export default function Main(props: React.PropsWithChildren<{}>) {
4852 }
4953 } , [ dispatch ] )
5054
55+ const onClickRetry = ( ) => {
56+ dispatch ( slice . actions . setAvailable ( true ) )
57+ dispatch ( slice . actions . setExpired ( false ) )
58+ }
59+
60+ return (
61+ < Main
62+ authorized = { authorized }
63+ available = { available }
64+ expired = { expired }
65+ user = { user }
66+ deployments = { deployments }
67+ reviews = { reviews }
68+ onClickRetry = { onClickRetry }
69+ children = { props . children }
70+ />
71+ )
72+ }
73+
74+ interface MainProps extends HeaderProps , ContentProps , LicenseWarningFooterProps { }
75+
76+ function Main ( {
77+ authorized,
78+ available,
79+ expired,
80+ user,
81+ deployments,
82+ reviews,
83+ license,
84+ children,
85+ onClickRetry
86+ } : React . PropsWithChildren < MainProps > ) {
5187 return (
5288 < Layout className = "layout" >
5389 < Helmet >
@@ -58,16 +94,27 @@ export default function Main(props: React.PropsWithChildren<{}>) {
5894 < link rel = "icon" href = "/favicon.ico" /> }
5995 </ Helmet >
6096 < Header >
61- < MainHeader />
97+ < MainHeader
98+ user = { user }
99+ deployments = { deployments }
100+ reviews = { reviews }
101+ />
62102 </ Header >
63103 < Content style = { { padding : "50px 50px" } } >
64- < MainContent >
65- { props . children }
104+ < MainContent
105+ authorized = { authorized }
106+ available = { available }
107+ expired = { expired }
108+ onClickRetry = { onClickRetry }
109+ >
110+ { children }
66111 </ MainContent >
67112 </ Content >
68113 < Footer style = { { textAlign : "center" } } >
69114 < div >
70- < LicenseWarning />
115+ < LicenseWarning
116+ license = { license }
117+ />
71118 </ div >
72119 < div >
73120 Gitploy ©{ moment ( ) . format ( "YYYY" ) } Created by Gitploy.IO
0 commit comments