1
1
import { ThemeProvider } from "styled-components" ;
2
2
import ChatBot from "react-simple-chatbot" ;
3
3
4
- const ChatsBot = ( ) => {
5
- const dataFromLocalStorage = localStorage . getItem ( "example-flow" ) ;
6
- const response = dataFromLocalStorage
7
- ? JSON . parse ( dataFromLocalStorage )
8
- : null ;
9
- const datas = response . nodes ;
10
-
11
- if ( ! datas || datas . length === 0 ) {
12
- return null ;
13
- }
14
-
15
- const steps = datas . flatMap ( ( node , index ) => {
4
+ const ChatsBot = ( { nodes, edges } ) => {
5
+ const steps = nodes ?. flatMap ( ( node , index ) => {
16
6
const dataLabel = node . data . label
17
7
. split ( "\n" )
18
8
. map ( ( paragraph , index ) => < p key = { index } > { paragraph } </ p > ) ;
19
9
20
- if ( index === datas . length - 1 ) {
10
+ if ( index === nodes . length - 1 && nodes . length === 2 ) {
11
+ return [
12
+ {
13
+ id : node . id ,
14
+ user : true ,
15
+ end : true ,
16
+ validator : ( value ) => {
17
+ if ( value === node . data . label ) {
18
+ return true ;
19
+ } else {
20
+ return "Keyword yang anda masukan salah" ;
21
+ }
22
+ } ,
23
+ } ,
24
+ ] ;
25
+ } else if ( index === nodes . length - 1 && nodes . length > 2 ) {
21
26
return [
22
27
{
23
28
id : node . id ,
@@ -32,7 +37,7 @@ const ChatsBot = () => {
32
37
id : node . id ,
33
38
component : < div > { dataLabel } </ div > ,
34
39
asMessage : true ,
35
- trigger : datas [ index + 1 ] . id ,
40
+ trigger : nodes [ index + 1 ] . id ,
36
41
} ,
37
42
] ;
38
43
} else {
@@ -41,7 +46,7 @@ const ChatsBot = () => {
41
46
{
42
47
id : node . id ,
43
48
user : true ,
44
- trigger : datas [ index + 1 ] . id ,
49
+ trigger : nodes [ index + 1 ] . id ,
45
50
validator : ( value ) => {
46
51
if ( value === node . data . label ) {
47
52
return true ;
@@ -59,12 +64,12 @@ const ChatsBot = () => {
59
64
{
60
65
value : "Nasi Padang" ,
61
66
label : "Nasi Padang" ,
62
- trigger : datas [ index + 1 ] . id ,
67
+ trigger : nodes [ index + 1 ] . id ,
63
68
} ,
64
69
{
65
70
value : "Soto" ,
66
71
label : "Soto" ,
67
- trigger : datas [ index + 1 ] . id ,
72
+ trigger : nodes [ index + 1 ] . id ,
68
73
} ,
69
74
] ,
70
75
} ,
0 commit comments