markdown is currently serialized to html at load time,
which makes it near impossible to support arbitrary html
in the markdown. This also means we're stringifying to
html on every change.
This commit moves to Remark's MDAST for local serialization,
including parsing from MDAST to Slates's Raw AST. It brings
much more control over the editing experience and full
support for processing unescaped HTML.
- New state field: `state.entryDraft.hasChanged`, initialized to
`false`.
- `state.entryDraft.hasChanged` set to `true` in `entryDraft` reducer
for `DRAFT_CHANGE_FIELD`.
- `EntryPage` adds a `listenBefore` listener to `history` on
`componentDidMount` that checks `this.props.entryDraft.hasChanged`
and, if that is true, asks the user to confirm the navigation.
- `EntryPage` removes its listener on `componentWillUnmount`.
* Field config options: 'required' and 'pattern'
* Widget controls can implement it's own isValid
* Validation errors store in redux & displayed
* Support for returned Promises in isValid
* Allow widget controls to return either a boolean, an error object or a promise from isValid
* Merge conflicts automatically. Closes#208
* removed unpublished entry route
All entries (either under editorial workflow or not) go through the same edit route.
* Add metadata to draft entry fields
* Do not render widget if value is null
* Pass along metadata
* Namespace queries to avoid conflict
* Query relational field on mount (for when editing entries)
* Make sure metadata is Immutable
* Added collection name as metadata keys
* No need for set width for base Card anymore
* entries are not required
* Redirect from Dashboard to first collection if publish mode is simple
* collection inference: Add more synonyms to description
* Implemented a better default preview for editing entries
* Add label field in default preview for small text values
* Added margin for default preview
* infer card title
* Infer entry body & image
* infer image
* Better terminology: EntryListing accept a single Collection
* remove log
* Refactored Collections VO into selectors
* use selectors when showning card
* fixed size cards
* Added 'bio' and 'biography' to collection description inference synonyms
* Removed unused card file
* throw error instance
* bugfix for file based collections
* lint
* moved components with css to own folder
* Search Bugfix: More than one collection might be returned
* Changed sidebar implementation. Closes#104 & #152
* Show spinning loading for unpublished entries
* Refactored Sidebar into a separate container
* Make preview widgets more robust
* Use collection label instead of name on the CollectionPage
* Added Avatar and logout menu item
* [feat](login) Added userpic with a logout action in the dropdown.
- Display logged in user in the AppHeader
- Implemented logout action and store + tests
- Better styles for GitHub sign in screen
Closes#100
* Better styles for the AppHeader
* Fixed some ESLint errors
* Better card's design for the editorial process.
- Use Card component from react-toolbox
- Added "Edit" buttons for cards
- Cleaned up CSS and JS
Fixes#125
* Better ImageCard and card list view. Fixes#125
* Use collection label instead of name on the CollectionPage
* Files based collections skeleton
* listing file based cards
* create new entry with collection
* moved lookupEntry to main backend
* Editing single page Collections file
* List widget basic implementation
* Adjustments for test-repo
* check if value exists before trying to iterate over
- Use react-topbar-progress-indicator as a global loading indicator.
- Added a global reducer that only holds `isFetching` for now.
- Display loading indicator on any `*_REQUEST` actions.
- Closes#103
- Using react-notifications to manage redux state
- Refactored Toast component to be stateless
- Toasts can be stacked
- Cleaned up CSS
- Updated stories