git.iko.soy/rowtype-yoga/purescript-next-website
on main help sign in
Package route
commitb47c0780f0321780835a2fa6675b477100fb61d1 authorandys8 <andys8@users.noreply.github.com> dateMon 29 Aug 2022, 15:52 (4 years ago) parent9d4ec24
5 files changed+36−4
pages/packages/[packageName].js+1 pages/packages/[packageName]/[packageVersion].js+1 src/Components/Navigation.purs+2−2 src/Pages/Package.purs+29 src/Pages/Packages.purs+3−2
pages/packages/[packageName].jsnew file+1
@@ -0,0 +1 @@
1+export { mkPackage as default, getServerSideProps } from "../../output/Pages.Package/index.js";
pages/packages/[packageName]/[packageVersion].jsnew file+1
@@ -0,0 +1 @@
1+export { mkPackage as default, getServerSideProps } from "../../../output/Pages.Package/index.js";
src/Components/Navigation.purs+2−2
@@ -99,9 +99,9 @@ navigation = do
9999 }
100100 $ icon siGithub { style: css { color: getColorValue theme "neutral" }, size: "1.5rem" }
101101 , el switch { checked: isDark, onChange: handler targetChecked $ traverse_ setDark } ""
102−
102+
103103 ]
104− , el NextUI.navbarToggle { hideIn: "mdMax" } React.empty -- [TODO] Find out why it is not hiding
104+ , el NextUI.navbarToggle { hideIn: "mdMax" } React.empty -- [TODO] Find out why it is not hiding
105105 ]
106106 where
107107 mkLink theme { onClick, title, isActive } =
src/Pages/Package.pursnew file+29
@@ -0,0 +1,29 @@
1+module Pages.Package (mkPackage) where
2+
3+import Prelude
4+
5+import Components.Page as Page
6+import Next.Router (query, useRouter)
7+import NextUI.NextUI as NextUI
8+import React.Basic.DOM (h1_, text) as R
9+import React.Basic.Hooks as React
10+import React.Util (el)
11+
12+type Props = {}
13+
14+type X =
15+ { packageName :: String
16+ -- TODO: Deal with `undefined` as `Maybe` conversion
17+ , packageVersion :: String
18+ }
19+
20+mkPackage :: Page.Component Props
21+mkPackage =
22+ Page.component "Package" \_env _props -> React.do
23+ router <- useRouter
24+ let ({ packageName, packageVersion }) = query router
25+ pure $ el NextUI.container {} $
26+ [ el NextUI.row {} $ R.h1_ [ R.text "Package" ]
27+ , el NextUI.row {} $ R.text $ "Name: " <> packageName
28+ , el NextUI.row {} $ R.text $ "Version: " <> packageVersion
29+ ]
src/Pages/Packages.purs+3−2
@@ -135,7 +135,7 @@ mkPackages :: Page.Component Props
135135mkPackages = do
136136
137137 reducer ← mkReducer reduce # liftEffect
138− Page.component "Pursuit" \env props -> React.do
138+ Page.component "Packages" \env props -> React.do
139139 router <- useRouter
140140 let
141141 q :: { q :: String }
@@ -178,7 +178,7 @@ mkPackages = do
178178 , el NextUI.col {} title
179179 ]
180180 renderSearchResult { info: Package { deprecated }, package } = el NextUI.row {}
181− [ el NextUI.col {} package
181+ [ el NextUI.col {} $ el NextUI.link { href: "/packages/" <> package } $ package -- TODO: Use router
182182 , el NextUI.col {} $ if deprecated then "deprecated" else ""
183183 ]
184184 renderSearchResult { info: Module { "module": m }, package } = el NextUI.row {}
@@ -187,6 +187,7 @@ mkPackages = do
187187 ]
188188
189189 renderSearchResults :: RD.RemoteData SearchError (Array SearchResult) -> Array JSX
190+ renderSearchResults (RD.Success []) = Array.singleton $ el NextUI.row {} $ el NextUI.text {} "No package found"
190191 renderSearchResults (RD.Success searchResults) = searchResults <#> renderSearchResult
191192 renderSearchResults (RD.Failure err) = Array.singleton $ el NextUI.row {} $ el NextUI.text { color: "error" } "Uh oh"
192193 renderSearchResults RD.Loading = Array.singleton $ el NextUI.row {} $ el NextUI.loading {} React.empty