Comments (7)
Didn't have a chance to test it myself yet as I only played around with RN a bit, but it should work just fine. Redraft itself doesn't have any React specific code/dependencies.
Might be a good idea to test it and add some info to readme.
from redraft.
Running into the first issue:
How can I make sure that redraft never returns just a string? In ReactNative you have to wrap every string in a Text
component.
This is what my renderer look like so far:
import React from 'react';
import Text from '../components/Text';
const renderer = {
blocks: {
unstyled: (children, { keys }) =>
children.map((child, index) => (
<Text key={keys[index] || index}>{child}</Text>
)),
'header-one': (children, { keys }) =>
children.map((child, index) => (
<Text type="title1" key={keys[index] || index}>{child}</Text>
)),
'header-two': (children, { keys }) =>
children.map((child, index) => (
<Text type="title2" key={keys[index] || index}>{child}</Text>
)),
},
};
from redraft.
Worked around this for now by doing
const filterStrings = (array) => {
const items = [];
array.forEach(item => {
if (typeof item === 'string') return;
if (Array.isArray(item)) return items.push(filterStrings(item));
items.push(item);
})
return items;
}
filterStrings(redraft(state, renderer));
The solution to this could be an option to wrap each unknown type in an unstyled
block maybe? That would work for our use case.
from redraft.
If I understand this correctly your raw contains a block that doesn't have a corresponding renderer which results in the block being returned as a string.
Falling back to unstyled might be an option, or possibly allow to define a custom fallback type.
from redraft.
Yesss, that is perfect! Did you release the blockFallback
option already?
from redraft.
I just did 0.10.0 release as this changes the default behavior. Should I close this for now?
from redraft.
Sounds good!
from redraft.
Related Issues (20)
- fixed render entities
- [Question] How do I retain inline styles of HTML tags?
- Flat rendering of inline style ranges with complex inline styles HOT 7
- Ignore `.babelrc` in `.npmignore`
- Issue with style renderer and collision in style key HOT 3
- Support complex decorators HOT 8
- Add support for draft-js-plugins HOT 7
- PrismDecorator doesn't work HOT 7
- Decorators incorrectly handle emojis HOT 2
- Persist multiple spaces between text? HOT 4
- Node styles being treated as equal when having the same amount
- Content Style Not Being Applied Correctly HOT 9
- Commas added to each tag when outputting to string HOT 2
- rendering empty line as `<br />` HOT 2
- Accept customStyleFn similar to draft-js HOT 1
- Just question
- entities block key
- How to get the HTML output after ```convertToRaw()```
- Redraft keeps duplicating entities when entity is copy-pasted from editor HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from redraft.