diff --git a/server/routes/page_home.go b/server/routes/page_home.go
index b7151cd..1ac237c 100644
--- a/server/routes/page_home.go
+++ b/server/routes/page_home.go
@@ -4,7 +4,6 @@ import (
"net/http"
"time"
- "github.com/tigorlazuardi/redmage/api"
"github.com/tigorlazuardi/redmage/pkg/errs"
"github.com/tigorlazuardi/redmage/pkg/log"
"github.com/tigorlazuardi/redmage/views"
@@ -19,9 +18,9 @@ func (routes *Routes) PageHome(rw http.ResponseWriter, r *http.Request) {
vc := views.NewContext(routes.Config, r)
- listSubredditParams := parseSubredditListQuery(r)
-
- list, err := routes.API.ListSubreddits(ctx, listSubredditParams)
+ data.ListSubredditParams.FillFromQuery(r.URL.Query())
+ data.ListSubredditParams.Limit = 0
+ list, err := routes.API.ListSubreddits(ctx, data.ListSubredditParams)
if err != nil {
log.New(ctx).Err(err).Error("failed to list subreddits")
code, message := errs.HTTPMessage(err)
@@ -33,14 +32,13 @@ func (routes *Routes) PageHome(rw http.ResponseWriter, r *http.Request) {
return
}
- imageListParams := api.ImageListParams{}
- imageListParams.FillFromQuery(r.URL.Query())
- if imageListParams.CreatedAt.IsZero() {
- imageListParams.CreatedAt = time.Now().Add(-time.Hour * 24) // images in the last 24 hours
+ data.ImageListParams.FillFromQuery(r.URL.Query())
+ if data.ImageListParams.CreatedAt.IsZero() {
+ data.ImageListParams.CreatedAt = time.Now().Add(-time.Hour * 24) // images in the last 24 hours
}
- imageListParams.Limit = 0
+ data.ImageListParams.Limit = 0
- imageList, err := routes.API.ImagesListWithDevicesAndSubreddits(ctx, imageListParams)
+ imageList, err := routes.API.ImagesListWithDevicesAndSubreddits(ctx, data.ImageListParams)
if err != nil {
log.New(ctx).Err(err).Error("failed to list subreddits")
code, message := errs.HTTPMessage(err)
diff --git a/views/components/horizontal_image_well.templ b/views/components/horizontal_image_well.templ
new file mode 100644
index 0000000..e63552d
--- /dev/null
+++ b/views/components/horizontal_image_well.templ
@@ -0,0 +1,9 @@
+package components
+
+templ HorizontalImageWell() {
+
-
- Recently Added
-
+ Recently Added
+ @filterBar(c, data)
if data.TotalImages == 0 {
There are no recently added images in the current time range.
@@ -39,20 +37,6 @@ templ HomeContent(c *views.Context, data Data) {
{ strconv.FormatInt(data.TotalImages, 10) } Images
}
-
- @recentRangeInput(c)
- @nsfwToggle(c, data)
-
for _, recently := range data.RecentlyAddedImages {
{ recently.Device.Name }
@@ -63,7 +47,11 @@ templ HomeContent(c *views.Context, data Data) {
- { strconv.Itoa(len(subreddit.Images)) } images
- @RecentlyAddedImageList(subreddit.Images, 0)
+ @components.HorizontalImageWell() {
+ for _, data := range subreddit.Images {
+ @components.ImageCard(data, components.HideDevice)
+ }
+ }
}
}
@@ -82,62 +70,53 @@ templ HomeContent(c *views.Context, data Data) {
}
-templ recentRangeInput(c *views.Context) {
-
-
+templ filterBar(c *views.Context, data Data) {
+
+ @nsfwToggle(data)
+ @recentRangeInput(c.Query.Get("created_at"))
}
-templ recentlyRangeOption(c *views.Context, value, text string) {
- if c.Request.URL.Query().Get("created_at") == "" && value == "-86400" {
-
- } else if c.Request.URL.Query().Get("created_at") == value {
-
- } else {
-
- }
+templ recentRangeInput(current string) {
+
+
}
-templ nsfwToggle(c *views.Context, data Data) {
-
-
-
+templ rangeOption(value, text string, selected bool) {
+
}
-templ RecentlyAddedImageList(images models.ImageSlice, opts components.ImageCardOption) {
-
- for _, data := range images {
- @components.ImageCard(data, components.HideDevice)
- }
-
+templ nsfwToggle(data Data) {
+
+
}
diff --git a/views/homeview/homeview_data.go b/views/homeview/homeview_data.go
index f99459e..425101d 100644
--- a/views/homeview/homeview_data.go
+++ b/views/homeview/homeview_data.go
@@ -15,7 +15,8 @@ type Data struct {
TotalImages int64
Error string
Now time.Time
- SFW bool
+ ListSubredditParams api.ListSubredditsParams
+ ImageListParams api.ImageListParams
}
type RecentlyAddedImages = []RecentlyAddedImage