npm.io
1.0.20 • Published 4 years ago

react-native-node-view

Licence
ISC
Version
1.0.20
Deps
0
Size
20 kB
Vulns
0
Weekly
0
Stars
1

Screenshots

#dada #dada #dada

How To Use

Install

npm i react-native-node-view

Import

import NodeView from 'react-native-node-view';

Examples

Simple

<NodeView
	nodesGroups={[
		{ nodes: [{ id: '1', lineTo: ['2', '3'], onPress: id => console.log(id) }] },
		{ nodes: [{ id: '2' }, { id: '3' }] },
	]}
/>

Inside view

<View style={{ width: 300, height: 300, alignSelf: 'center', borderWidth: 1, borderRadius: 10, borderColor: 'gray' }}>
	<NodeView
		nodesGroups={[
			{ nodes: [{ id: '1', lineTo: ['2', '3'], onPress: id => console.log(id) }] },
			{ nodes: [{ id: '2' }, { id: '3' }] },
		]}
	/>
</View>

With delete operation

const [nodesGroups, setNodesGroups] = useState([
	{
		nodes: [{ id: '1', lineTo: ['2', '3'], onPress: (id: string) => console.log(id) }],
	},
	{
		nodes: [{ id: '2' }, { id: '3' }],
	},
]);

return (
	<View
		style={{
			flex: 1,
			justifyContent: 'center',
			backgroundColor: 'white',
		}}>
		<NodeView
			enablePan={true}
			enableZoom={true}
			containerStyle={{ borderWidth: 0 }}
			onDeleteNode={(id, oldState, newState) => setNodesGroups(newState)}
			nodesGroups={nodesGroups}
		/>
	</View>
);

API

nodesGroups Object

Prop Name Description Type required
nodesGroups List of Node objects Array true
containerStyle Style of the node view container ViewStyle false
lineStyle Style for each line of the node view LineProps false
onDeleteNode On deleting node (id: string, oldState: Array, newState: Array) => void false
onLongPress Listener for node long press (id: string) => void false
maxZoom Max zoom number 1.5
minZoom Min zoom number 0.5
maxPan Max movement for pan gesture number 100
minPan Min movement for pan gesture number -100
enablePan Enable pan gesture boolean false
enableZoom Enable pinch gesture boolean false
deleteNodeViewStyle Delete node container style ViewStyle false
deleteNodeLineStyle Delete node line container style ViewStyle false
enableDeleteMode Style for each line of the node view boolean true

Node Object

Prop Name Description Type required
id The id of the node string true
lineTo List of all the lines to draw to each node by id list false
child Custom component to use JSX.Element false
onPress On press listener (id: string) => void false

Supported

Tested on Android and IOS with expo sdk 41

Keywords