Commit Graph

94 Commits

Author SHA1 Message Date
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
Dan Holmsand 2bb32eb21f Make set-state etc async as well, by using an atom 2014-02-15 11:57:52 +01:00
Dan Holmsand b2bfc14afb Move test code for partial 2014-02-14 11:27:45 +01:00
Dan Holmsand b041427e94 Allow Hiccup tags to be strings and symbols as well 2014-02-11 12:03:44 +01:00
Dan Holmsand ed4cf4e389 Allow component functions to be anything that satisfies ifn? 2014-02-11 11:36:58 +01:00
Dan Holmsand 805264ea61 Warn on deref in seqs instead of silently failing
Use warning to improve color palette demo
Fix page title
Move more code to util.cljs
2014-02-10 23:54:30 +01:00
Dan Holmsand 8f1c02b273 Render without allocating ratom unless necessary 2014-02-10 15:29:38 +01:00
Dan Holmsand 16a41f67e4 Remove replace-args
Probably not very useful, and easy to add back if need be
2014-02-10 09:31:25 +01:00
Dan Holmsand 3c2c63402e Breaking change: Allow arbitrary arguments to component functions
Previously, the first argument had to be a map, and the rest of the
arguments where passed as a vector as the second argument.

Now [my-comp foo...] generally behaves as (my-comp foo...).

Since `this` is no longer passed to component functions, add
current-component function.

Also change signatures of React callbacks, to reflect that arbitrary
arguments can be passed.

Remove set-props and replace-props for the same reason.

Add argv accessor and set-args instead.
2014-02-08 13:55:01 +01:00