Skip to content

Instantly share code, notes, and snippets.

@beetleman
Created April 4, 2019 11:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save beetleman/0fe9429b933ecc5bd017f06d5e023c56 to your computer and use it in GitHub Desktop.
Save beetleman/0fe9429b933ecc5bd017f06d5e023c56 to your computer and use it in GitHub Desktop.
(ns fake-ns.users-ws
(:require [fulcro.client.dom :as dom]
[fulcro.client.primitives :refer [defsc] :as prim]
[nubank.workspaces.card-types.fulcro :as ct.fulcro]
[nubank.workspaces.core :as ws]
[nubank.workspaces.lib.fulcro-portal :as f.portal]))
(defsc Account
[_ {:account/keys [name]}]
{:initial-state (fn [p] p)
:query [:account/id :account/name :user/id]
:ident [:account/by-user-id :user/id]}
(dom/div name))
(def ui-account (prim/factory Account))
(defsc User
[_ {:user/keys [name account id] :as props}]
{:initial-state (fn [p] p)
:query [:user/name
:user/id
{[:account/by-user-id 1] ; how can I use `:user/id` from previous line here
; can i use some sort of placeholder for it?
(prim/get-query Account)}]
:ident [:user/by-id :user/id]}
(dom/div "user :" name
(ui-account (props [:account/by-user-id id]))))
(def ui-user (prim/factory User))
(defsc UsersDemo
[this {:keys [user]}]
{:initial-state (fn [_]
{:user (prim/get-initial-state User {:user/name "Bob"
:user/id 1})
:account (prim/get-initial-state Account {:account/id 1
:user/id 1
:account/name "Account 1"})})
:ident (fn [] [::id "singleton"])
:query [{:user (prim/get-query User)}
{:account (prim/get-query Account)}]}
(dom/div
(ui-user user)))
(ws/defcard question-card
(ct.fulcro/fulcro-card
{::f.portal/root UsersDemo}))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment