@kodif/kodif-rn-sdk
v0.0.1
Published
an sdk to render kodif cx flows
Readme
Kodif React Native SDK
About
comming soon ...
Here are brief instructions on how to integrate this SDK with other react native projects.
Installation Guide
- make sure to have the following dependencies installed. run
npm installoryarn addfollowed by (install the ones that you don't have only)@react-native-async-storage/async-storage @react-native-community/datetimepicker axios uuid react-native-flash-message react-native-get-random-values react-native-modern-datepicker react-native-paper react-native-render-html react-native-svg rollbar-react-native react-native-vector-icons.
For un-managed react native bare workflow
- install pods
- run
cd ios - then run
pod installornpx pod-install
- add support for
.jsxand other extensions.
- create
metro.config.jsto the root directory if you don't have one already. - add the following to
metro.config.jsso support extensions.
module.exports = {
// ...other config,
resolver: {
sourceExts: ['jsx', 'js', 'ts', 'tsx', 'cjs']
},
};- add icons support 'react-native-vector-icons'
- required icons:
MaterialIcons.ttfandios/MaterialCommunityIcons.ttf - ios https://www.youtube.com/watch?v=fVoEojORQyQ
- android ``
- if
react-native linkis used, it can be undone by runningreact-native unlink react-native-vector-icons - ios: make sure NOT to have target set for fonts in
info.plistin 'xcode' under project tree while they are added underCopy bundle resourcesinsideBuild Phasesof the project. possible error:Multiple commands produce ...
- add custom fonts support
- if fonts required by your flow are not installed, errors are most likely to occur
- [ ios | android ] https://mehrankhandev.medium.com/ultimate-guide-to-use-custom-fonts-in-react-native-77fcdf859cf4
- [ ios | android ] https://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/
For expo-managed workflow
- add support for
.jsxand other extensions.
- create
metro.config.jsto the root directory if you don't have one already. - add the following to
metro.config.jsso support extensions.
module.exports = {
// ...other config,
resolver: {
sourceExts: ['jsx', 'js', 'ts', 'tsx', 'cjs']
},
};- add icons support 'react-native-vector-icons'
- required icons:
MaterialIcons.ttfandios/MaterialCommunityIcons.ttf
- add custom fonts support
- use expo's
loadAsyncor any other way you prefer - if fonts required by your flow are not installed, errors are most likely to occur
import {loadAsync} from 'expo-font';
// ...
await loadAsync({
'font-name': require('{font_path}/{font_filename}'),
//...
})
// ...Rest comming soon ...
Usage Guide
import {Kodif} from "@kodif/kodif-rn-sdk";
const ExampleScreenOrComponent = () => {
return (
<Kodif
// available props
flowUuid="" /* @required: to fetch the flow */
handler={() =>{/* @required: to navigate the user after the flow execution ends */}}
initialParams={{/* @optional: add it, ONLY if your flow depends on them. eg.{email:"[email protected]", id:"7128"} */}}
loading={{ /* @optional: if you want to customize the loading component */
// available options
backgroundColor: `${COLOR_CODE}`,
text: <CustomLoadingTextComponent/>,
component: <CustomLoadingComponent/>,
indicator: <CustomLoadingIndicatorComponent/>,
}}
/>
);
}