fulcro

Book: http://book.fulcrologic.com, Community Resources: https://fulcro-community.github.io/, RAD book at http://book.fulcrologic.com/RAD.html
grounded_sage 2021-03-19T12:12:25.057500Z

@wilkerlucio I’m currently digging into fulcro-inspect and trying to understand how building devtools like this work. Have you got any good resources you can point me at to bootstrap my knowledge in this area?

wilkerlucio 2021-03-19T14:43:39.058200Z

the main resource for me is the browser extension docs, the trick part is that is like a distributed system, so in terms of architecture is about the message passing and maintaining the state around

wilkerlucio 2021-03-19T14:45:02.058400Z

for example, for fulcro inspect, to get a message from a page to the devtools, you gotta flow it though: - page use postMessage to itself - content-script captures message, send it to background process of extension - background process is a single script, and has to manage all connected tabs - then the background should route from the current tab to the devtools there

👍 1
grounded_sage 2021-03-19T15:21:07.059400Z

another question. Can fulcro-inspect detect fulcro apps in the wild? If so is there any examples that I could look at? @wilkerlucio

grounded_sage 2021-03-20T08:30:03.087300Z

Thanks @tony.kay this is the nuances I expected actually.

wilkerlucio 2021-03-19T15:34:22.059500Z

what you mean by detect apps in the wild?

grounded_sage 2021-03-19T15:36:16.059700Z

like React devtools does

wilkerlucio 2021-03-19T15:39:22.059900Z

fulcro inspect does that

grounded_sage 2021-03-19T15:39:24.060100Z

I’ve been working on a hello world for this. Because getting up and running is not super clear. I was just digging in to fulcro-inspect and trying to extract the baseline necessities. https://github.com/groundedSAGE/shadow-cljs-chrome-devtool-panel-hello-world/tree/main/public

wilkerlucio 2021-03-19T15:39:32.060300Z

the icon highlights when it detects a fulcro app

wilkerlucio 2021-03-19T15:45:32.060800Z

in this case, the detection is part of the init process, the browser sends a message telling us he wants fulcro inspect (from the content script), and then we activate the icon

grounded_sage 2021-03-19T16:29:25.061200Z

cool thanks for the info!

2021-03-19T19:23:09.063700Z

Can anyone point me to a publicly available project that uses fulcro-garden-css ? I’m also interested if anyone is using it together with Fulcro’s semantic-ui-wrapper Thanks!

Luis Santos 2021-03-19T21:01:04.071500Z

Hi everyone, I recently started learning Fulcro and although I understand the basic concepts and how the EDN queries work with entities and trees of entities. I'm struggling to understand how does one go about modeling something like a search with multiple input parameters or pagination. I would appreciate if someone could point me to some examples or reading materials. Thanks

Luis Santos 2021-03-20T11:00:31.088400Z

@holyjak Thanks. I was not aware of this tutorial. I've been following the fulcro book. This tutorial feels like a better starting point. Although I'm getting a lot of value from fulcro book.

👍 1
Jakub Holý 2021-03-20T11:08:32.089400Z

The book is invaluable but little too much at start :) Don't worry, I'll be coming back to it constantly :)

hadils 2021-03-19T21:07:18.074600Z

Hi! I am trying to pass a React component in a callback function of another component. The (comp/factory TaskScreen) element is incorrect, and when I try to use TaskScreen directly, I get the following error:

TypeError: null is not an object (evaluating 'drop_component_BANG_.cljs$core$IFn$_invoke$arity$1')

This error is located at:
    in com.yardwerk.mobile-ui.root/TaskScreen (created by SceneComponent)
    in SceneComponent (created by SceneView)
    in RCTView (at View.js:34)...
I don't know how to remediate this error. Does anyone know how I can pass a React component around ? Thanks! I solved my own problem. Need to use:
(comp/with-parent-context this (ui-task-screen {})
in the callback to ensure the parent's context is passed on to the child.

🎉 1
2021-03-19T21:20:09.074700Z

hi @luis559 Have you seen the section at the end of the Fulcro book that talks about paginating large lists? It may be helpful: https://book.fulcrologic.com/#_paginating_large_lists

Luis Santos 2021-03-19T21:24:01.074900Z

I didn't. I'm still going through the book. There is a lot of content to digest. Thanks.

2021-03-19T21:35:18.075100Z

I would recommend spending as much time as you need playing with the core of Fulcro. Getting a really solid understanding of defsc :query :ident and :initial-state and load! is important. Without a good understanding of those concepts, it will be confusing to go onto the more advanced interactions like pagination, auto-complete etc.

Luis Santos 2021-03-19T21:50:38.075300Z

Thanks for the advice. As far as my understanding goes load! is also a mutation in the sense that it triggers a network call (side effect). Being it a side effect, should we call load! directly from the ui?