Fork me on GitHub

do we need a share button? so we could compare different projects ? 🙂


hm, probably i could just add a button that will copy to the clipboard in text format, and anyone could share it here 🙂 if they want


something like this, format and copy is welcomed 😉


stats for my re-frame project by re-frisk db: 75 | fx: 198 | cofx: 4 | event: 727 | sub: 402 (86)


75 keys in app-db. and 86 active subscriptions from 402 at the moment


Hey folks. I’m using vis.js timeline with re-frame [1]. The timeline has ‘datasets’ that hold items which are displayed in the timeline [2]. The issue is that I need to be able to manipulate these datasets (which are js objects) in different parts of my app. I’m not sure how to model this with re-frame. I suppose storing the dataset objects in the app-db is not a good idea - it looks awkward because the I think db won’t change even if the object does, and it’s not serializable. So far, I did the following: - I’m storing the datasets in atoms declared in some namespace - For manipulating the datasets (add items to it, for example), I created a coeffect that knows about that atom. - For reading the datasets, I’m not sure what I can do. I’ll probably create some functions that access the atom. This works and it’s testable (I reset the atoms in each test setup), but I’m wondering if there’s a better way of doing this. [1]: [2]:


If you have to reset an atom to make it store the change, then you can store it in app-db and it will work fine. If you can mutate a dataset object, then you don't really need an atom. You could potentially still store it in app-db if you update and extract the data only via a small set of functions that you control - then you could wrap the mutable data in an immutable map that has an extra :version key or something like that that's changed each time you mutate the data.

👀 3

Great, I’m applying your suggestions and it does look better. Thanks.

👍 3