1module Container.Component where
5import CSS.Safer (cssSafer)
6import Container.Header (mkHeader)
7import Container.Landing (mkLandingPage)
8import Container.Sidebar (mkSidebar, mkSidebarLink)
10import Polyfill.SmoothScrolling (smoothScrollPolyfill)
11import React.Basic (JSX)
12import React.Basic.DOM as R
13import React.Basic.Hooks ((/\), ReactComponent, component, element, useState)
14import React.Basic.Hooks as React
15import SVG.Icon (appendIcon, applyflippedIcon, bindIcon, mapIcon)
16import Theme.Provider (mkThemeProvider)
17import Theme.Styles (makeStyles)
18import Theme.Types (CSSTheme)
20mkContainer ∷ Effect (ReactComponent { theme ∷ CSSTheme, children ∷ Array JSX })
22 themeProvider <- mkThemeProvider
23 containerContent <- mkContainerContent
24 component "Container" \{ theme, children } -> React.do
26 $ element themeProvider
29 [ element containerContent { children }
33mkContainerContent ∷ Effect (ReactComponent { children ∷ Array JSX })
34mkContainerContent = do
37 makeStyles \(theme ∷ CSSTheme) ->
38 -- { "@global": cssSafer { "*": { outline: "1px solid red" } }
41 { backgroundColor: theme.backgroundColour
42 , fontFamily: theme.textFontFamily
43 , color: theme.textColour
45 , transition: "0.2s ease-in-out"
47 "'landing landing landing'"
48 <> "'header header header' "
49 <> "'nav content content'"
50 -- , "footer footer footer"
51 -- , gridTemplateColumns: "max-content auto"
60 , icon: cssSafer { fill: "theme.textColour" }
62 landingPage <- mkLandingPage
65 sidebarLink <- mkSidebarLink
66 component "ContainerContent" \{ children } -> React.do
68 collapsed /\ modifyCollapsed <- useState true
71 { className: classes.container
73 [ element landingPage {}
78 [ element sidebarLink { name: "Learn", icon: element appendIcon {}, collapsed }
79 , element sidebarLink { name: "Try", icon: element bindIcon {}, collapsed }
80 , element sidebarLink { name: "Share", icon: element applyflippedIcon {}, collapsed }
81 , element sidebarLink { name: "Jobs", icon: element mapIcon {}, collapsed }
85 , R.div { className: classes.content, children }
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list