1- import React , { useState , useEffect } from "react" ;
1+ import React , { useState , useEffect } from "react" ;
22import { TableView } from "./TableView" ;
3- import uuid from 'react-uuid' ;
4-
5- var insertbool = true ;
63
4+ let insertbool = true ;
75//get data from storage
86const getDatafromStorage = ( ) => {
97 const data = localStorage . getItem ( 'issueData' ) ;
@@ -15,126 +13,121 @@ const getDatafromStorage = () => {
1513}
1614
1715export const IssueCreationPage = ( ) => {
18- const [ issues , setissues ] = useState ( getDatafromStorage ( ) ) ;
16+ const [ issues , setissues ] = useState ( getDatafromStorage ( ) ) ;
17+ const [ isDisabled , setIsDisabled ] = useState ( false ) ;
1918
2019 //button
21- const [ buttonname , setButtonName ] = useState ( "Verify and submit" ) ;
20+ const [ buttonname , setButtonName ] = useState ( "Verify and submit" ) ;
2221
2322 //for error
24- const [ errorid , seterrorID ] = useState ( false ) ;
25- const [ errortask , seterrorTask ] = useState ( false ) ;
26- const [ errorenddate , seterrorEndDate ] = useState ( false ) ;
27- const [ errorpriority , seterrorpriority ] = useState ( false ) ;
28- const [ errorassignee , seterrorAssignee ] = useState ( false ) ;
29- const [ errorstatus , seterrorStatus ] = useState ( false ) ;
23+ const [ errorid , seterrorID ] = useState ( false ) ;
24+ const [ errortask , seterrorTask ] = useState ( false ) ;
25+ const [ errorenddate , seterrorEndDate ] = useState ( false ) ;
26+ const [ errorpriority , seterrorpriority ] = useState ( false ) ;
27+ const [ errorassignee , seterrorAssignee ] = useState ( false ) ;
28+ const [ errorstatus , seterrorStatus ] = useState ( false ) ;
3029
3130 // input field states
32- const [ id , setID ] = useState ( '' ) ;
33- const [ task , setTask ] = useState ( '' ) ;
34- const [ enddate , setEndDate ] = useState ( '' ) ;
35- const [ priority , setPriority ] = useState ( '' ) ;
36- const [ assignee , setAssignee ] = useState ( '' ) ;
37- const [ status , setStatus ] = useState ( '' ) ;
31+ const [ id , setID ] = useState ( '' ) ;
32+ const [ task , setTask ] = useState ( '' ) ;
33+ const [ enddate , setEndDate ] = useState ( '' ) ;
34+ const [ priority , setPriority ] = useState ( '' ) ;
35+ const [ assignee , setAssignee ] = useState ( '' ) ;
36+ const [ status , setStatus ] = useState ( '' ) ;
37+
38+ // save data
39+ useEffect ( ( ) => {
40+ localStorage . setItem ( 'issueData' , JSON . stringify ( issues ) ) ;
41+ } , [ issues ] )
42+
43+ let getData ;
44+
45+ // Original data has to shown in the input field when Edit
46+ const editIssue = ( id ) => {
47+ setIsDisabled ( ! isDisabled ) ; // unique Idfield is disabled..
48+ console . log ( "From edit" , id )
49+ setButtonName ( "Edit here and verify" ) ;
50+ const editable = JSON . parse ( localStorage . getItem ( "issueData" ) ) ;
51+ getData = editable . find ( ( total ) => total ?. id === id ) ;
52+ setID ( getData ?. id ) ;
53+ setTask ( getData ?. task ) ;
54+ setEndDate ( getData ?. enddate ) ;
55+ setPriority ( getData ?. priority ) ;
56+ setAssignee ( getData ?. assignee ) ;
57+ setStatus ( getData ?. status ) ;
58+ insertbool = false ;
59+ }
60+
61+ //deletedata
62+ const deleteIssue = ( id ) => {
63+ let alert = window . confirm ( "Are you want to delete?" ) ;
64+ console . log ( "From delete" , id )
65+ if ( alert ) {
66+ const filteredIssues = issues . filter ( ( element , index ) => {
67+ return element ?. id !== id ;
68+ } )
69+ setissues ( filteredIssues ) ;
70+ }
71+ }
3872
3973 //submit issue
4074 const submitIssue = ( e ) => {
4175 e . preventDefault ( ) ;
42- if ( id . length == 0 ) {
43- console . log ( "id empty" )
44- seterrorID ( true )
45- } else {
46- seterrorID ( false )
76+ if ( id ?. length === 0 ) {
77+ seterrorID ( true ) ;
78+ return ;
4779 }
48- if ( task . length == 0 ) { seterrorTask ( true ) } else { seterrorTask ( false ) }
49- if ( enddate == "" ) { seterrorEndDate ( true ) } else { seterrorEndDate ( false ) }
50- if ( priority == "" ) { seterrorpriority ( true ) } else { seterrorpriority ( false ) }
51- if ( assignee == "" ) { seterrorAssignee ( true ) } else { seterrorAssignee ( false ) }
52- if ( status == "" ) { seterrorStatus ( true ) } else { seterrorStatus ( false ) }
53-
54- if ( id !== "" && task !== "" && enddate !== "" && priority !== "" && assignee != "" && status != "" ) {
55- let issue = {
80+ seterrorID ( false ) ;
81+
82+ if ( task . length === 0 ) { seterrorTask ( true ) } else { seterrorTask ( false ) }
83+ if ( enddate === "" ) { seterrorEndDate ( true ) } else { seterrorEndDate ( false ) }
84+ if ( priority === "" ) { seterrorpriority ( true ) } else { seterrorpriority ( false ) }
85+ if ( assignee === "" ) { seterrorAssignee ( true ) } else { seterrorAssignee ( false ) }
86+ if ( status === "" ) { seterrorStatus ( true ) } else { seterrorStatus ( false ) }
87+
88+ if ( id !== "" && task !== "" && enddate !== "" && priority !== "" && assignee !== "" && status !== "" ) {
89+ if ( isDisabled ) { // revert to normal IdField
90+ setIsDisabled ( ! isDisabled ) ;
91+ setButtonName ( "Verify and submit" ) ;
92+ }
93+ let issue = {
5694 id,
5795 task,
5896 enddate,
5997 priority,
6098 assignee,
6199 status
62100 }
63- if ( insertbool ) {
64- setissues ( [ ...issues , issue ] ) ;
101+
102+ if ( insertbool ) {
103+ setissues ( [ ...issues , issue ] ) ;
104+ } else {
105+ const editable = JSON . parse ( localStorage . getItem ( "issueData" ) ) ;
106+ getData = editable . find ( ( total ) => total ?. id === id ) ;
107+ getData . id = id ;
108+ getData . task = task ;
109+ getData . enddate = enddate ;
110+ getData . priority = priority ;
111+ getData . assignee = assignee ;
112+ getData . status = status ;
113+ setissues ( editable ) ;
114+ }
65115 setID ( '' ) ;
66116 setTask ( '' ) ;
67117 setEndDate ( '' ) ;
68118 setPriority ( '' ) ;
69119 setAssignee ( '' ) ;
70120 setStatus ( '' ) ;
71- console . log ( "YOu are from true" ) ;
72- } else {
73- let editable = JSON . parse ( localStorage . getItem ( "issueData" ) ) ;
74- getData = editable . find ( ( total ) => total . id == id ) ;
75- getData . id = id ;
76- getData . task = task ;
77- getData . enddate = enddate ;
78- getData . priority = priority ;
79- getData . assignee = assignee ;
80- getData . status = status ;
81- console . log ( "Editable data:" , getData . task )
82- setissues ( editable ) ;
83- }
84- } else {
85- let editable = JSON . parse ( localStorage . getItem ( "issueData" ) ) ;
86- getData = editable . find ( ( total ) => total . id == id ) ;
87- getData . id = id ;
88- getData . task = task ;
89- getData . enddate = enddate ;
90- getData . priority = priority ;
91- getData . assignee = assignee ;
92- getData . status = status ;
93- console . log ( "Editable data:" , getData . task )
94- setissues ( editable ) ;
95- }
96- }
97-
98- // save data
99- useEffect ( ( ) => {
100- localStorage . setItem ( 'issueData' , JSON . stringify ( issues ) ) ;
101- } , [ issues ] )
102-
103- // Edit data
104- var getData ;
105- const editIssue = ( id ) => {
106- console . log ( "From edit" , id )
107- let editable = JSON . parse ( localStorage . getItem ( "issueData" ) ) ;
108- getData = editable . find ( ( total ) => total . id == id ) ;
109- setID ( getData . id ) ;
110- setTask ( getData . task ) ;
111- setEndDate ( getData . enddate ) ;
112- setPriority ( getData . priority ) ;
113- setAssignee ( getData . assignee ) ;
114- setStatus ( getData . status ) ;
115- insertbool = false ;
116- console . log ( "EDIT BOOL" , insertbool )
117- }
118-
119- //deletedata
120- const deleteIssue = ( id ) => {
121- var alert = window . confirm ( "Are you want to delete?" )
122- console . log ( "From delete" , id )
123- if ( alert ) {
124- const filteredIssues = issues . filter ( ( element , index ) => {
125- return element . id !== id
126- } )
127- setissues ( filteredIssues ) ;
128121 }
129122 }
130123
131124 return (
132125 < div >
133126 < h2 className = "title-create" > Issue Creation using CRUD</ h2 >
134127 < div className = "form-container" >
135- < form autoComplete = "off" className = 'form-group' onSubmit = { submitIssue } >
128+ < form autoComplete = "off" className = 'form-group' onSubmit = { submitIssue } >
136129
137- Your ID    < input type = "number" className = 'form-control'
130+ Your ID    < input type = "number" disabled = { isDisabled } className = 'form-control'
138131 onChange = { ( e ) => setID ( e . target . value ) } value = { id } > </ input >
139132 { errorid ?
140133 < label > Your Id is required*</ label > :""
@@ -174,7 +167,7 @@ export const IssueCreationPage = () => {
174167
175168 Assignee:   
176169 < select id = "selectassign" onChange = { ( e ) => setAssignee ( e . target . value ) } value = { assignee } >
177- < option > XXXXX </ option >
170+ < option > </ option >
178171 < option > Name1</ option >
179172 < option > Name2</ option >
180173 < option > Name3</ option >
0 commit comments