1// Generated by purs version 0.13.6
3var Control_Applicative = require("../Control.Applicative/index.js");
4var Control_Bind = require("../Control.Bind/index.js");
5var Data_Eq = require("../Data.Eq/index.js");
6var Data_Function = require("../Data.Function/index.js");
7var Data_Functor = require("../Data.Functor/index.js");
8var Data_Int = require("../Data.Int/index.js");
9var Data_Maybe = require("../Data.Maybe/index.js");
10var Data_Monoid = require("../Data.Monoid/index.js");
11var Data_Newtype = require("../Data.Newtype/index.js");
12var Data_Nullable = require("../Data.Nullable/index.js");
13var Data_Symbol = require("../Data.Symbol/index.js");
14var Data_Tuple = require("../Data.Tuple/index.js");
15var Data_Unit = require("../Data.Unit/index.js");
16var Effect = require("../Effect/index.js");
17var Effect_Class = require("../Effect.Class/index.js");
18var Effect_Class_Console = require("../Effect.Class.Console/index.js");
19var JSS = require("../JSS/index.js");
20var React_Basic = require("../React.Basic/index.js");
21var React_Basic_DOM_Generated = require("../React.Basic.DOM.Generated/index.js");
22var React_Basic_Hooks = require("../React.Basic.Hooks/index.js");
23var React_Basic_Hooks_Internal = require("../React.Basic.Hooks.Internal/index.js");
24var Record_Extra = require("../Record.Extra/index.js");
25var Type_Equality = require("../Type.Equality/index.js");
26var Web_Event_EventTarget = require("../Web.Event.EventTarget/index.js");
27var Web_HTML = require("../Web.HTML/index.js");
28var Web_HTML_HTMLElement = require("../Web.HTML.HTMLElement/index.js");
29var Web_HTML_Window = require("../Web.HTML.Window/index.js");
30var Yoga_SVG_Icon = require("../Yoga.SVG.Icon/index.js");
31var Yoga_Scroll_Listener = require("../Yoga.Scroll.Listener/index.js");
32var Yoga_Theme_Styles = require("../Yoga.Theme.Styles/index.js");
33var Yoga_Typography_Header = require("../Yoga.Typography.Header/index.js");
34var UseShouldBeSticky = function (x) {
37var ntUseShouldBeSticky = new Data_Newtype.Newtype(function (n) {
40var makeListener = function (setSticky) {
41 return function (element) {
42 return function __do() {
43 var nodeStartPos = Web_HTML_HTMLElement.offsetTop(element)();
44 return Web_Event_EventTarget.eventListener(Data_Function["const"](function __do() {
45 var yPos = Data_Functor.mapFlipped(Effect.functorEffect)(Control_Bind.bind(Effect.bindEffect)(Web_HTML.window)(Web_HTML_Window.scrollY))(Data_Int.toNumber)();
46 return setSticky(nodeStartPos < yPos)();
51var useShouldBeSticky = React_Basic_Hooks_Internal.coerceHook(ntUseShouldBeSticky)(React_Basic_Hooks_Internal.bind(React_Basic_Hooks_Internal.ixBindRender)(React_Basic_Hooks.useRef(Data_Nullable["null"]))(function (nodeRef) {
52 return React_Basic_Hooks_Internal.bind(React_Basic_Hooks_Internal.ixBindRender)(React_Basic_Hooks.useState(false))(function (v) {
53 var setSticky = function ($64) {
54 return v.value1(Data_Function["const"]($64));
56 return React_Basic_Hooks_Internal.discard(React_Basic_Hooks_Internal.ixBindRender)(React_Basic_Hooks.useLayoutEffect(Data_Eq.eqUnit)(Data_Unit.unit)(function __do() {
57 var maybeNode = React_Basic_Hooks.readRefMaybe(nodeRef)();
58 var v1 = Control_Bind.bind(Data_Maybe.bindMaybe)(maybeNode)(Web_HTML_HTMLElement.fromNode);
59 if (v1 instanceof Data_Maybe.Nothing) {
60 return Control_Bind.discard(Control_Bind.discardUnit)(Effect.bindEffect)(Effect_Class_Console.log(Effect_Class.monadEffectEffect)("Could not register listener because there was no node"))(function ($dollar__unused) {
61 return Control_Applicative.pure(Effect.applicativeEffect)(Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit));
64 if (v1 instanceof Data_Maybe.Just) {
65 var listener = makeListener(setSticky)(v1.value0)();
66 return Yoga_Scroll_Listener.registerListener(listener)();
68 throw new Error("Failed pattern match at Container.Header (line 85, column 7 - line 91, column 43): " + [ v1.constructor.name ]);
69 }))(function ($dollar__unused) {
70 return Control_Applicative.pure(React_Basic_Hooks_Internal.applicativeRender(Type_Equality.refl))(new Data_Tuple.Tuple(v.value0, nodeRef));
74var mkHeader = function __do() {
75 var h = Yoga_Typography_Header.mkH();
76 var useStyles = Yoga_Theme_Styles.makeStylesJSS()(Record_Extra.mapRecordCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
78 }))()(Record_Extra.mapRecordCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
80 }))()(Record_Extra.mapRecordCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
82 }))()(Record_Extra.mapRecordCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
84 }))()(Record_Extra.mapRecordNil)()())()())()())()())(JSS.jssClasses()(function (v) {
86 header: JSS.jss(JSS.jssAbleRecord(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
88 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
89 return "backgroundColor";
90 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
91 return "borderBottom";
92 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
94 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
96 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
98 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
100 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
101 return "justifyContent";
102 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
103 return "paddingBottom";
104 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
106 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
108 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsNil))))))))))))()())({
109 backgroundColor: v.interfaceColour,
111 fontFamily: v.headingFontFamily,
114 alignItems: "center",
115 justifyContent: "flex-end",
119 paddingBottom: "10px"
121 sticky: JSS.jss(JSS.jssAbleRecord(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
123 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
125 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
127 }))(JSS.jssAbleInt)()()()(JSS.jssAbleFieldsNil))))()())({
132 title: JSS.jss(JSS.jssAbleRecord(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
133 return "paddingRight";
134 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsNil))()())({
137 logo: JSS.jss(JSS.jssAbleRecord(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
139 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
141 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
142 return "marginRight";
143 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
145 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
147 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsCons(new Data_Symbol.IsSymbol(function ($dollar__unused) {
149 }))(JSS.jssAbleString)()()()(JSS.jssAbleFieldsNil)))))))()())({
159 return React_Basic_Hooks.component()()()("Header")(function (v) {
160 return React_Basic_Hooks_Internal.bind(React_Basic_Hooks_Internal.ixBindRender)(useStyles({}))(function (classes) {
161 return React_Basic_Hooks_Internal.bind(React_Basic_Hooks_Internal.ixBindRender)(useShouldBeSticky)(function (v1) {
162 return Control_Applicative.pure(React_Basic_Hooks_Internal.applicativeRender(Type_Equality.refl))(React_Basic_DOM_Generated.header()({
164 className: classes.header + (" " + Data_Monoid.guard(Data_Monoid.monoidString)(v1.value0)(classes.sticky)),
165 children: [ React_Basic.element(h)({
166 level: Yoga_Typography_Header.H2.value,
167 text: "Rowtype Yoga",
168 className: new Data_Maybe.Just(classes.title)
169 }), React_Basic_DOM_Generated.div()({
170 children: [ React_Basic.element(Yoga_SVG_Icon.trianglelogoIcon())({}) ],
171 className: classes.logo
180 UseShouldBeSticky: UseShouldBeSticky,
181 useShouldBeSticky: useShouldBeSticky,
182 makeListener: makeListener,
183 ntUseShouldBeSticky: ntUseShouldBeSticky
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