File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11// frontend/src/pages/admin/Kategorije.jsx
22
3- import { useState , useEffect } from "react" ;
3+ import { useState , useEffect , useCallback } from "react" ;
44import "../../styles/Pages.css" ;
55
66export default function Kategorije ( ) {
@@ -13,32 +13,34 @@ export default function Kategorije() {
1313 active : true ,
1414 } ) ;
1515
16- useEffect ( ( ) => {
17- let subscribed = true ;
16+ const fetchCategories = useCallback ( async ( ) => {
17+ try {
18+ const response = await fetch ( `${ import . meta. env . VITE_API_URL } /api/categories` , {
19+ credentials : "include" ,
20+ } ) ;
21+ const data = await response . json ( ) ;
22+ setCategories ( Array . isArray ( data ) ? data : [ ] ) ;
23+ setLoading ( false ) ;
24+ } catch ( error ) {
25+ console . error ( "Error fetching categories:" , error ) ;
26+ setCategories ( [ ] ) ;
27+ setLoading ( false ) ;
28+ }
29+ } , [ ] ) ;
1830
19- ( async ( ) => {
20- try {
21- const response = await fetch ( `${ import . meta. env . VITE_API_URL } /api/categories` , {
22- credentials : "include" ,
23- } ) ;
24- const data = await response . json ( ) ;
25- if ( subscribed ) {
26- setCategories ( Array . isArray ( data ) ? data : [ ] ) ;
27- setLoading ( false ) ;
28- }
29- } catch ( error ) {
30- console . error ( "Error fetching categories:" , error ) ;
31- if ( subscribed ) {
32- setCategories ( [ ] ) ;
33- setLoading ( false ) ;
34- }
35- }
36- } ) ( ) ;
31+ useEffect ( ( ) => {
32+ let isMounted = true ;
33+
34+ const loadData = async ( ) => {
35+ await fetchUsers ( ) ;
36+ } ;
3737
38- return ( ) => {
39- subscribed = false ;
40- } ;
41- } , [ ] ) ;
38+ loadData ( ) ;
39+
40+ return ( ) => {
41+ isMounted = false ;
42+ } ;
43+ } , [ fetchUsers ] ) ;
4244
4345 const resetForm = ( ) => {
4446 setFormData ( {
Original file line number Diff line number Diff line change @@ -23,10 +23,19 @@ export default function Korisnici() {
2323 }
2424 } , [ ] ) ;
2525
26- // eslint-disable-next-line react-hooks/set-state-in-effect
27- useEffect ( ( ) => {
28- fetchUsers ( ) ;
29- } , [ fetchUsers ] ) ;
26+ useEffect ( ( ) => {
27+ let isMounted = true ;
28+
29+ const loadData = async ( ) => {
30+ await fetchUsers ( ) ;
31+ } ;
32+
33+ loadData ( ) ;
34+
35+ return ( ) => {
36+ isMounted = false ;
37+ } ;
38+ } , [ fetchUsers ] ) ;
3039
3140 const handleEdit = ( user ) => {
3241 setEditingId ( user . id ) ;
You can’t perform that action at this time.
0 commit comments