package sihl
The modular functional web framework
Install
Dune Dependency
Authors
Maintainers
Sources
sihl-0.1.1.tbz
sha256=eac58e5ee9c869aa3b0f0bcee936b01c53bf7fe1febb42edd607268dfb11f4e9
sha512=012b6cf1cf6af0966059761b4916ea8aa590aa8d5809a6f480cb17e23ee10c3b9245062c4f0cf9ad98ab950391c0827c9780999d39fa16a93f7aab4b12f9ab8c
doc/src/sihl.data/data_view.ml.html
Source file data_view.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
open Base module PartialCollection = struct type controls = { first : Data_ql.Page.t option; previous : Data_ql.Page.t option; next : Data_ql.Page.t option; last : Data_ql.Page.t option; } [@@deriving show, eq, fields, yojson] type 'a t = { member : 'a list; total_items : int; controls : controls } [@@deriving show, eq, fields, yojson] let controls_of_pagination page total_items = let limit = Data_ql.Page.get_limit page in let offset = Data_ql.Page.get_offset page in let limit = Option.value ~default:25 limit in let offset = Option.value ~default:0 offset in let first = if offset <= 0 then None else Some (Data_ql.Page.set_offset 0 page) in let previous = if offset - limit >= 0 then Some (Data_ql.Page.set_offset (offset - limit) page) else None in let next = if offset + limit < total_items then Some (Data_ql.Page.set_offset (offset + limit) page) else None in let last = if offset < total_items - limit then Some (Data_ql.Page.set_offset (total_items - 1) page) else None in { first; previous; next; last } let create ~page ~meta items = let total_items = Data_repo.Meta.total meta in let controls = controls_of_pagination page total_items in { member = items; total_items; controls } end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>