252 Commits

Author SHA1 Message Date
Dan Holmsand
163308a392 Make site and examples work with ClojureScript 2816
ClojureScript all of a sudden complains about "single segment
namespaces", which forces a rather massive reorg.

Also, cljs.test/run-tests is broken.
2015-02-10 14:35:12 +01:00
Dan Holmsand
8feaccca88 Add IReactiveAtom type, and use in cursor asserts 2015-02-09 13:19:12 +01:00
Dan Holmsand
a2b5acb68f Make warning for missing keys print data
That will hopefully make finding the offending code easier
to find.
2015-02-08 12:24:52 +01:00
Dan Holmsand
8b5905c9e1 Add reactify-component: adapts Reagent component for use in JSX 2015-02-08 00:04:45 +01:00
Dan Holmsand
017fa9c106 Rename :component-function to :reagent-render
But keep :component-function as alias for the time being
2015-02-04 22:45:39 +01:00
Dan Holmsand
c862792624 Revert experiment with lazy reaction
Needs more surgery to get this to work properly
2015-02-04 22:14:04 +01:00
Dan Holmsand
d39656624d Make Reaction and cursors lazy
Their value will now only be calculated as needed (i.e when deref
is called), which should make debugging them much easier.

This also makes updating the atom they are relying on cheaper.
2015-02-04 16:03:35 +01:00
Dan Holmsand
15acc0d6ff Added adapt-react-class 2015-02-02 15:19:43 +01:00
Dan Holmsand
6e0e9ed564 Make wrap watchable 2015-02-01 19:43:26 +01:00
Dan Holmsand
83fd1361df Remove bundled React
No longer needed, since we use cljsjs/react instead.

Also remove obsolete interop macros, and some general cleanup
2015-02-01 15:13:08 +01:00
Dan Holmsand
744165737f Make Reaction always call watches
Even if it is not executed automatically
2015-02-01 00:41:59 +01:00
Dan Holmsand
dfd3e540f3 Use cljs.test 2015-01-31 23:09:42 +01:00
Dan Holmsand
6d9bb35996 Deprecate calling cursor with atom as second argument 2015-01-31 14:29:01 +01:00
Dan Holmsand
86bf871329 Swap order of arguments to cursor
So now it should be called as (r/cursor atom path). The old order
still works though.
2015-01-31 14:08:19 +01:00
Dan Holmsand
976d8ba4f6 Make cursor more general and flexible
Instead of passing an atom, you can now pass a function.

That function is passed one argument (the path provided to cursor)
when deref-ing, and two arguments (path and new value) when
resetting.

Remove the old setter, and the currying version.
2015-01-31 13:32:48 +01:00
Dan Holmsand
a28dc812ae Check for memory leaks 2015-01-31 12:22:53 +01:00
Dan Holmsand
00b5c1d330 Add tests from reagent-cursor 2015-01-31 11:01:35 +01:00
Dan Holmsand
0e7f5518c0 Allow deref of Reaction outside active Reaction 2015-01-30 21:20:02 +01:00
Dan Holmsand
0e8ca42a37 Add test for force-update-all 2014-12-09 12:58:30 +01:00
Dan Holmsand
fc2c59c3e1 Add docs for create-element, and one-argument version
And add a fix for the benefit of Light Table
2014-12-07 20:26:29 +01:00
Dan Holmsand
1a2417a14b Fix tests when macros change 2014-12-07 16:38:28 +01:00
Dan Holmsand
0215a4a093 Make browser tests clean up after themselves properly 2014-12-03 16:14:07 +01:00
Dan Holmsand
e193518292 Add a few more tests for wrap 2014-12-03 16:07:58 +01:00
Dan Holmsand
7a035387b7 Add a few tests for wrap 2014-12-03 14:50:03 +01:00
Dan Holmsand
0a8bc67d5f Introduce create-element 2014-12-02 11:44:42 +01:00
Dan Holmsand
723a1aa379 Really make advanced mode tests work 2014-11-29 23:47:57 +01:00
Dan Holmsand
17375490fe Got site generation and tests working with advanced compilation 2014-11-29 23:26:42 +01:00
Dan Holmsand
bffbae231d Reorganize build, tests and doc site
Tests and doc site can now run without node, using only
"lein figwheel". Tests and site are then re-run automatically
whenever a source file changes.

The doc site is now generated into "outsite/public", and can be
copied into the "gh-pages" branch with "make build-gh-pages".

"make push-gh-pages" builds the doc site and pushes it upstream
to the gh-pages branch there.

Generation of html pages is now handled completely in
ClojureScript, loaded from "bin/gen-site.js".

Link handling is a bit simplified.
2014-11-29 18:30:24 +01:00
Dan Holmsand
3bf98230ca Merge branch 'morecursor' 2014-11-23 21:09:56 +01:00
Dan Holmsand
7244ffc25d Add test for wrap 2014-11-22 11:08:17 +01:00
Dan Holmsand
f94fcd5542 Add equality test for cursor 2014-11-22 10:45:36 +01:00
Dan Holmsand
6b87349d88 Make sure returning new class from render works 2014-11-22 09:42:31 +01:00
Dan Holmsand
02ffe6bcfa Update cursor test 2014-11-13 19:58:56 +01:00
Dan Holmsand
3f696a3922 Make sure render-to-string etc work better in a browser
Previously, they would be reactive, which could lead to all
kinds of strangeness.

Also fix pesky Closure warning.
2014-11-06 19:18:56 +01:00
Dan Holmsand
12d475fc62 Introduce render, render-to-string and render-to-static-markup
The new names correspond to changes in React in 0.12.0.

Both render-component and render-component-to-string are kept for
backward compatibility.

Call React.render etc to avoid deprecation warnings from React.
2014-11-06 11:34:51 +01:00
Dan Holmsand
a1a244e573 Merge branch 'master' of https://github.com/seancorfield/reagent 2014-10-20 13:29:19 +02:00
Dan Holmsand
6ce5bc16f5 Add test for null component return 2014-09-16 16:31:29 +02:00
Sean Corfield
5d2fc0254e Add cursor support.
Adds RCursor type: wraps Reagent's RAtom along with a path that provides focus into a specific part of that atom.

Adds reagent.ratom/cursor as a constructor for the RCursor type.

Adds reagent.core/cursor as the public API. This can be called with just a path, and returns a function that accepts a Reagent atom, or with both a path and an atom.

Dereferences of a cursor behave like get-in on the underlying atom with the specified path.

If you reset! a cursor, it behaves like a swap! assoc-in on the underlying atom. If swap! a cursor, it behaves like a swap! update-in on the underlying atom.
2014-09-08 19:31:05 -07:00
Dan Holmsand
429ed50fab Make demo code more Light Table-friendly 2014-04-01 19:50:28 +02:00
Dan Holmsand
4060bfc6fe Simplify the fvar macro 2014-04-01 15:17:33 +02:00
Dan Holmsand
2e0e369d93 Use new javascript interop macros 2014-03-25 12:37:28 +01:00
Dan Holmsand
976cf8ef0b Add fvar macro 2014-03-25 11:33:15 +01:00
Dan Holmsand
6389a3889a Add better javascript interop macros 2014-03-25 07:58:22 +01:00
Dan Holmsand
907a85db9c Update React to 0.10.0 2014-03-25 06:23:44 +01:00
Dan Holmsand
0f2136d4b4 Allow render-component to take a function returning a component 2014-03-18 16:43:19 +01:00
Dan Holmsand
ba995c2e0d Add force-update-all, to make LightTable integration easier
force-update-all re-mounts all root components, and makes all
their children re-render.
2014-03-18 13:09:55 +01:00
Dan Holmsand
82a1dd73eb Make javascript interop macros more like aset and aget
Drop js-global, probably not worth the trouble
2014-03-17 12:02:26 +01:00
Dan Holmsand
e21e58e509 Rename jget to get. etc 2014-03-14 11:45:44 +01:00
Dan Holmsand
8b59d1509b Add macros for more convenient javascript interop 2014-03-14 10:27:49 +01:00
Jacob Maine
6302c8ecd6 Make multimethods work as component functions.
This is actually a bug in ClojureScript
(http://dev.clojure.org/jira/browse/CLJS-777).  In regular Clojure a
`MultiFn` is `ifn?`, but in ClojureScript it wasn't.  The bug is now
fixed
(525154f2a4)
but not yet released.

This code can be reverted after Reagent's ClojureScript version is
updated.
2014-03-03 17:55:40 +02:00