codex: Refactor OpenFga.useObjects
This commit is contained in:
@@ -29,23 +29,34 @@ type OpenFGA =
|
||||
|
||||
[<Hook>]
|
||||
static member useObjects(user: string, relation: string, objectType: string, ?context: obj) : Objects =
|
||||
let objects, setObjects = React.useState<Objects> Objects.Empty
|
||||
let isLoading, setLoading = React.useState true
|
||||
let error, setError = React.useState<string option> None
|
||||
let objects, setObjects = React.useState<string array> Array.empty
|
||||
|
||||
React.useEffect (
|
||||
(fun () ->
|
||||
setObjects { objects with Loading = true; Error = None }
|
||||
setLoading true
|
||||
setError None
|
||||
|
||||
OpenFGA.fetchObjects(user, relation, objectType, context)
|
||||
|> Promise.iter (fun res ->
|
||||
match res with
|
||||
| Ok newObjects ->
|
||||
setObjects { objects with Loading = false; Objects = newObjects }
|
||||
setObjects newObjects
|
||||
| Error err ->
|
||||
console.error("[OpenFGA] Error loading user objects: %s", err)
|
||||
setObjects { objects with Loading = false; Error = Some err }
|
||||
setError (Some err)
|
||||
|
||||
setLoading false
|
||||
)
|
||||
),
|
||||
[| box user |]
|
||||
)
|
||||
|
||||
objects
|
||||
let props = {
|
||||
Loading = isLoading
|
||||
Error = error
|
||||
Objects = objects
|
||||
}
|
||||
|
||||
props
|
||||
Reference in New Issue
Block a user