-
{propertyValues.map((element, index) => (
- closeHint(element)}>{element} ))}
import React, { useState, useEffect } from 'react'; import { userDataStore } from '../../store/userDataStore'; import { registrationStore } from '../../store/store'; import Sidebar from '../../partials/Sidebar'; import { observer } from 'mobx-react-lite'; import Header from '../../partials/Header'; import ProfileTable from '../../partials/digitalId/ProfileTable'; import Image from '../../images/transactions-image-04.svg'; import ProfileIcon from '../../images/profile-icon.svg'; import Avatar01 from '../../images/avatar-01.jpg'; import Avatar02 from '../../images/avatar-02.jpg'; import Avatar03 from '../../images/avatar-03.jpg'; const Profile = observer (() => { const [sidebarOpen, setSidebarOpen] = useState(false); const [buttonPanelOpen, setButtonPanelOpen] = useState(true); const [removePanelOpen, setRemovePanelOpen] = useState(false); const [changePanelOpen, setChangePanelOpen] = useState(false); const [toggle, setToggle] = useState(true); const [addPanelOpen, setAddPanelOpen] = useState(false); const [selectedItems, setSelectedItems] = useState([]); /*useEffect(() => { userDataStore.getUserData(); }, []);*/ const defaultValues = { property: '', value: '', 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 [currentValues, setCurrentValues] = useState(defaultValues); const openHint = () => { if (!currentValues.property) { setPropertyValues(initialPropertyValues); } } const changeCurrentValues = (value, field) => { setCurrentValues((prevState)=> ({ ...prevState, [field]: value.charAt(0).toUpperCase()+value.slice(1), })) } const closeHint = (element) => { changeCurrentValues(element, 'property'); setPropertyValues([]); } const handleSelectedItems = (selectedItems) => { setSelectedItems([...selectedItems]); if (selectedItems.length > 0) { setButtonPanelOpen(false); setAddPanelOpen(false); setChangePanelOpen(true); } if (removePanelOpen === true) { setChangePanelOpen(false); } if (selectedItems.length === 0) { setRemovePanelOpen(false); setButtonPanelOpen(true); setChangePanelOpen(false); } }; const openAddPanel = () => { setAddPanelOpen(true); setButtonPanelOpen(false); } const sendValues = () => { if (!userData.some((element) => element.property === currentValues.property) && (currentValues.seed.toString().length === 20)) { setAddPanelOpen(false); setButtonPanelOpen(true); setCurrentValues(defaultValues); } } const cancelAddPanel = () => { setCurrentValues(defaultValues); setAddPanelOpen(false); setButtonPanelOpen(true); } const openRemovePanel = () => { setRemovePanelOpen(true); setChangePanelOpen(false); } const applyRemovePanel = () => { setRemovePanelOpen(false); setButtonPanelOpen(true); } const handleInput = (text, field) => { changeCurrentValues(text, field); setPropertyValues(initialPropertyValues); if (text) { let reg = new RegExp(`^${text}`, 'img'); setPropertyValues((prevState) => prevState.filter((element) => element.match(reg))); } }; const userData = [ { id: '0', category: 'General', validated: true, blockchained: true, image: ProfileIcon, value: 'Dominik', property: 'First name', status: 'Completed', transactions: ['0x7234ABC342342352345', '0x5745DEF342342352345'], avatars: [Avatar01, Avatar02, Avatar03] }, { id: '1', category: 'General', validated: true, blockchained: true, image: ProfileIcon, value: 'Lamakani', property: 'Second name', status: 'Progress', transactions: ['0x7234ABC342342352345', '0x5745DEF342342352345'], avatars: null }, { id: '2', category: 'General', validated: true, blockchained: true, image: ProfileIcon, value: '05.10.1983', property: 'Birthdate', status: 'Incorrect', transactions: ['0x7234ABC342342352345', '0x5745DEF342342352345'], avatars: null }, { id: '3', category: 'General', validated: true, blockchained: true, image: ProfileIcon, value: 'Male', property: 'Gender', status: 'Stored', transactions: ['0x7234ABC342342352345', '0x5745DEF342342352345'], avatars: null }, { id: '4', category: 'Nationality', validated: true, blockchained: true, image: ProfileIcon, value: 'United Kindom', property: 'Residence', status: 'Completed', transactions: ['0x7234ABC342342352345', '0x5745DEF342342352345'], avatars: [Avatar01, Avatar02, Avatar03] }, { id: '5', category: 'Nationality', validated: true, blockchained: true, image: ProfileIcon, value: 'Passport', property: 'Document type', status: 'Progress', transactions: ['0x7234ABC342342352345', '0x5745DEF342342352345'], avatars: [Avatar01, Avatar02, Avatar03] }, { id: '6', category: 'Nationality', validated: true, blockchained: true, image: ProfileIcon, value: 'A123B3143', property: 'Document ID', status: 'Incorrect', transactions: ['0x7234ABC342342352345', '0x5745DEF342342352345'], avatars: null }, { id: '7', category: 'Nationality', validated: true, blockchained: true, image: ProfileIcon, value: '05.10.2012', property: 'Issue date', status: 'Stored', transactions: ['0x7234ABC342342352345', '0x5745DEF342342352345'], avatars: null }, { id: '8', category: 'Nationality', validated: true, blockchained: true, image: ProfileIcon, value: '05.10.2032', property: 'Expiry date', status: 'Stored', transactions: ['0x7234ABC342342352345', '0x5745DEF342342352345'], avatars: null }, { id: '9', category: 'Social', validated: true, blockchained: true, image: ProfileIcon, value: '@lamakani', property: 'Telegram', status: 'Completed', transactions: ['0x7234ABC342342352345', '0x5745DEF342342352345'], avatars: null }, { id: '10', category: 'Social', validated: true, blockchained: true, image: ProfileIcon, value: '@lamakani', property: 'Telegram', status: 'Progress', transactions: ['0x7234ABC342342352345', '0x5745DEF342342352345'], avatars: [Avatar01, Avatar02, Avatar03] }, ] return (