tangled
alpha
login
or
join now
kacaii.dev
/
sigo
0
fork
atom
๐ฉโ๐ Firefighters API written in Gleam!
lustre
gleam
0
fork
atom
overview
issues
pulls
pipelines
:recycle: add function to bundle the view functions
kacaii.dev
1 week ago
6f09b6f7
dfbd19cd
verified
This commit was signed with the committer's
known signature
.
kacaii.dev
SSH Key Fingerprint:
SHA256:n9v7QGNWHCUv1x/483hCtPUvTsVabU5PzC5CSJMUNtI=
+17
-27
1 changed file
expand all
collapse all
unified
split
client
src
client.gleam
+17
-27
client/src/client.gleam
···
152
152
153
153
// VIEW ------------------------------------------------------------------------
154
154
155
155
+
fn render_page(
156
156
+
model: Model,
157
157
+
element_view: element.Element(a),
158
158
+
f: fn(a) -> Msg,
159
159
+
) -> element.Element(Msg) {
160
160
+
element.fragment([
161
161
+
header.view(model.session) |> element.map(HeaderMsg),
162
162
+
sidebar.view(model.session, model.sidebar) |> element.map(SidebarMsg),
163
163
+
element_view |> element.map(f),
164
164
+
])
165
165
+
}
166
166
+
155
167
fn view(model: Model) -> element.Element(Msg) {
156
168
case model {
157
169
// LANDING PAGE ------------------------------------------------------------
158
170
Model(session:, route: route.Landing, page: page.Landing(page_model), ..) ->
159
159
-
element.fragment([
160
160
-
header.view(session) |> element.map(HeaderMsg),
161
161
-
sidebar.view(session, model.sidebar) |> element.map(SidebarMsg),
162
162
-
landing.view(session, page_model) |> element.map(LandingMsg),
163
163
-
])
171
171
+
render_page(model, landing.view(session, page_model), LandingMsg)
164
172
165
173
// LOGIN PAGE --------------------------------------------------------------
166
174
Model(session:, route: route.Login, page: page.Login(page_model), ..) ->
167
167
-
element.fragment([
168
168
-
header.view(session) |> element.map(HeaderMsg),
169
169
-
sidebar.view(session, model.sidebar) |> element.map(SidebarMsg),
170
170
-
login.view(session, page_model) |> element.map(LoginMsg),
171
171
-
])
175
175
+
render_page(model, login.view(session, page_model), LoginMsg)
172
176
173
177
// DASHBOARD PAGE ----------------------------------------------------------
174
178
Model(
···
176
180
route: route.Dashboard,
177
181
page: page.Dashboard(page_model),
178
182
..,
179
179
-
) ->
180
180
-
element.fragment([
181
181
-
header.view(session) |> element.map(HeaderMsg),
182
182
-
sidebar.view(session, model.sidebar) |> element.map(SidebarMsg),
183
183
-
dashboard.view(session, page_model) |> element.map(DashboardMsg),
184
184
-
])
183
183
+
) -> render_page(model, dashboard.view(session, page_model), DashboardMsg)
185
184
186
185
// SIGNUP PAGE -------------------------------------------------------------
187
186
Model(session:, route: route.Signup, page: page.Signup(page_model), ..) ->
188
188
-
element.fragment([
189
189
-
header.view(session) |> element.map(HeaderMsg),
190
190
-
sidebar.view(session, model.sidebar) |> element.map(SidebarMsg),
191
191
-
signup.view(session, page_model) |> element.map(SignupMsg),
192
192
-
])
187
187
+
render_page(model, signup.view(session, page_model), SignupMsg)
193
188
194
189
// FALLBACK ----------------------------------------------------------------
195
195
-
model ->
196
196
-
element.fragment([
197
197
-
header.view(model.session) |> element.map(HeaderMsg),
198
198
-
sidebar.view(model.session, model.sidebar) |> element.map(SidebarMsg),
199
199
-
not_found.view() |> element.map(NotFoundMsg),
200
200
-
])
190
190
+
model -> render_page(model, not_found.view(), NotFoundMsg)
201
191
}
202
192
}
203
193