diff --git a/src/pages/digitalId/ProfileId.jsx b/src/pages/digitalId/ProfileId.jsx index 900fb11..4f5ff20 100644 --- a/src/pages/digitalId/ProfileId.jsx +++ b/src/pages/digitalId/ProfileId.jsx @@ -16,16 +16,16 @@ const Profile = observer (() => { const [addPanelOpen, setAddPanelOpen] = useState(false); const [updatePanelOpen, setUpdatePanelOpen] = useState(false); const [selectedItems, setSelectedItems] = useState([]); - + const defaultValues = { property: '', value: '', - seed: Math.floor(Math.random() * 90000000000000000000) + seed: Math.floor(Math.random() * 90000000000000000000) }; const initialPropertyValues = ['First name', 'Second name', 'Birthdate', 'Gender', 'Residence', 'Document type', 'Document ID', 'Issue date', 'Expiry date']; const [propertyValues, setPropertyValues] = useState([]); - const [updatedValues, setUpdatedValues] = useState(defaultValues); + const [updatedValues, setUpdatedValues] = useState([defaultValues]); const [addedValues, setAddedValues] = useState(defaultValues); const openHint = () => { @@ -35,9 +35,13 @@ const Profile = observer (() => { } const changeAddedValues = (value, field) => { - setAddedValues((prevState)=> ({ + setAddedValues((prevState) => ( + field !== 'seed' ? { ...prevState, - [field]: value.charAt(0).toUpperCase()+value.slice(1), + [field]: value + } : { + ...prevState, + [field]: +value, })) console.log(addedValues); }; @@ -45,9 +49,13 @@ const Profile = observer (() => { const changeUpdatedValues = (value, field, key) => { setUpdatedValues((prevState) => prevState.map((elem) => ( - elem.key === key ? { + (elem.key === key && field !== 'seed') ? { ...elem, - [field]: value.charAt(0).toUpperCase()+value.slice(1), + [field]: value, + } : + (elem.key === key) ? { + ...elem, + [field]: +value, } : elem )) ) @@ -61,7 +69,12 @@ const Profile = observer (() => { const handleSelectedItems = (selectedItems) => { setSelectedItems([...selectedItems]); - setUpdatedValues(userDataStore.decryptedData.filter(({ key }) => selectedItems.includes(key))); + setUpdatedValues(userDataStore.decryptedData.filter(({ key }) => selectedItems.includes(key)) + .map(elem => ( + (!elem.seed) ? { + ...elem, + seed: Math.floor(Math.random() * 90000000000000000000) + }: elem))); if (selectedItems.length > 0) { setButtonPanelOpen(false); setAddPanelOpen(false); @@ -104,7 +117,7 @@ const Profile = observer (() => { const cancelUpdatePanel = () => { setUpdatePanelOpen(false); - setButtonPanelOpen(true); + setChangePanelOpen(true); } const openRemovePanel = () => { @@ -227,7 +240,7 @@ const Profile = observer (() => { autoComplete='off' id="seed" className="form-input w-full" - type="text" + type="number" required onClick={() => setPropertyValues([])} onChange={(e) => changeAddedValues(e.target.value, 'seed')} @@ -265,48 +278,51 @@ const Profile = observer (() => { {/* Update panel */}
{updatedValues.map((item, index) => ( -
-
- - changeUpdatedValues(e.target.value, 'property', item.key)} - value={item.label} - disabled='disabled' - /> +
+ +
+ + changeUpdatedValues(e.target.value, 'property', item.key)} + value={item.label} + disabled='disabled' + /> +
+
+ + changeUpdatedValues(e.target.value, 'value', item.key)} + value={item.value} + /> +
+
+ + changeUpdatedValues(e.target.value, 'seed', item.key)} + value={item.seed} + /> +
+ {(updatedValues[index+1]) ? ( +
+ ) : null}
-
- - changeUpdatedValues(e.target.value, 'value', item.key)} - value={item.value} - /> -
-
- - changeUpdatedValues(e.target.value, 'seed', item.key)} - value={item.seed || Math.floor(Math.random() * 90000000000000000000)} - /> -
- {(updatedValues[index+1]) ? ( -
- ) : null} -
+ ))} +
Store data on blockchain