|
1 | | -import React, { useState } from 'react'; |
| 1 | +import React, {useEffect, useState} from 'react'; |
2 | 2 | import Switch from "./Switch"; |
3 | 3 | import axios from 'axios'; |
4 | | -import Endpoints from "../../contants/endpoints"; |
5 | | - |
6 | | -const initialUsers = [ |
7 | | - { id: 1, name: 'Alice', publicKey: false, privateKey: false, fileUpload: false, readFiles: false, fileSend: false,fileReceive: false, eKey: "...", dKey:"..." }, |
8 | | - { id: 2, name: 'Bob', publicKey: false, privateKey: false, fileUpload: false, readFiles: false,fileSend: false,fileReceive: false, eKey: "...", dKey:"..." }, |
9 | | - { id: 3, name: 'Charlie', publicKey: false, privateKey: false, fileUpload: false, readFiles: false,fileSend: false,fileReceive: false, eKey: "...", dKey:"..." }, |
10 | | -]; |
11 | 4 |
|
12 | 5 | const UserContainer = ({ user, handleUserToggle }) => { |
13 | 6 | const [loading, setLoading] = useState(false); |
@@ -133,46 +126,39 @@ const UserContainer = ({ user, handleUserToggle }) => { |
133 | 126 | }; |
134 | 127 |
|
135 | 128 | const ScenarioArea = () => { |
136 | | - const [users, setUsers] = useState(initialUsers); |
| 129 | + const [users, setUsers] = useState(null); |
137 | 130 | const [activeUsers, setActiveUsers] = useState([]); |
138 | 131 | const [loading, setLoading] = useState(false); |
139 | 132 |
|
| 133 | + useEffect(() => { |
| 134 | + const fetchUser = async () => { |
| 135 | + try { |
| 136 | + const response = await axios.get(`http://localhost:8080/user/all`); |
| 137 | + const users = response.data; |
| 138 | + setUsers(users); |
| 139 | + } catch (error) { |
| 140 | + console.log('Sepetiniz yüklenirken bir hata oluştu'); |
| 141 | + } finally { |
| 142 | + setLoading(false); |
| 143 | + } |
| 144 | + }; |
| 145 | + if (users === null || users.length === 0) { |
| 146 | + fetchUser(); |
| 147 | + console.log(users); |
| 148 | + } else { |
| 149 | + console.log('No user data found in localStorage'); |
| 150 | + } |
| 151 | + }, []); |
| 152 | + |
140 | 153 |
|
141 | 154 | const handleUserClick = (userId) => { |
142 | 155 | if (activeUsers.includes(userId)) { |
143 | 156 | setLoading(true); |
144 | 157 | setActiveUsers(activeUsers.filter(id => id !== userId)); |
145 | | - axios.delete(`${Endpoints.USER}/${userId}`) |
146 | | - .then(response => { |
147 | | - console.log("Kullanıcı başarıyla silindi:", response.data); |
148 | | - }) |
149 | | - .catch(error => { |
150 | | - console.error("Kullanıcı silinirken hata oluştu:", error); |
151 | | - }); |
152 | 158 | setLoading(false); |
153 | 159 | } else { |
154 | 160 | setLoading(true); |
155 | | - const user = users.find(u => u.id === userId); |
156 | 161 | setActiveUsers([...activeUsers, userId]); |
157 | | - |
158 | | - axios.post(Endpoints.USER, { |
159 | | - id: user.id, |
160 | | - name: user.name, |
161 | | - publicKey: user.publicKey, |
162 | | - privateKey: user.privateKey, |
163 | | - fileUpload: user.fileUpload, |
164 | | - fileRead: user.readFiles, |
165 | | - fileSend: user.fileSend, |
166 | | - fileReceive: user.readFiles, |
167 | | - eKey: user.eKey, |
168 | | - dKey: user.dKey |
169 | | - }) |
170 | | - .then(response => { |
171 | | - console.log("Kullanıcı başarıyla eklendi:", response.data); |
172 | | - }) |
173 | | - .catch(error => { |
174 | | - console.error("Kullanıcı eklenirken hata oluştu:", error); |
175 | | - }); |
176 | 162 | setLoading(false); |
177 | 163 | } |
178 | 164 | }; |
@@ -238,19 +224,23 @@ const ScenarioArea = () => { |
238 | 224 | <p className={"title-text"}><span>Senaryo</span> Alanı</p> |
239 | 225 | <div className="custom-row"> |
240 | 226 | <p className={"italic"} style={{ marginRight: 12 }}>Kullanıcı<br />Seçim</p> |
241 | | - {users.map((user) => ( |
242 | | - <div |
243 | | - key={user.id} |
244 | | - className={`user-button ${activeUsers.includes(user.id) ? 'active' : ''}`} |
245 | | - onClick={() => handleUserClick(user.id)} |
246 | | - > |
247 | | - <img src="/icon/user.png" alt="User Icon" className="mini-icon" |
248 | | - style={{ |
249 | | - filter: activeUsers.includes(user.id) ? 'brightness(0) invert(1)' : 'none' |
250 | | - }} |
251 | | - /> {user.name} |
252 | | - </div> |
253 | | - ))} |
| 227 | + { |
| 228 | + (users !== null && users.length !== 0) ? |
| 229 | + users.map((user) => ( |
| 230 | + <div |
| 231 | + key={user.id} |
| 232 | + className={`user-button ${activeUsers.includes(user.id) ? 'active' : ''}`} |
| 233 | + onClick={() => handleUserClick(user.id)} |
| 234 | + > |
| 235 | + <img src="/icon/user.png" alt="User Icon" className="mini-icon" |
| 236 | + style={{ |
| 237 | + filter: activeUsers.includes(user.id) ? 'brightness(0) invert(1)' : 'none' |
| 238 | + }} |
| 239 | + /> {user.name} |
| 240 | + </div> |
| 241 | + )) : (<div>Boş</div>) |
| 242 | + } |
| 243 | + |
254 | 244 | </div> |
255 | 245 | { |
256 | 246 | activeUsers |
|
0 commit comments