Release/0.0.3 to main (#254)
* CEC-2628 - Display IP in digital twin in portal (#251) * CEC-3453 Update security dll instructions (#252) * CEC-2752-Add-Mobile-Issue-Tracker (#250) * first commit * removed comments * remove more comments * fix build issues * fix unused vars * update snapshot * fix test * Fix connect ECONNREFUSED 127.0.0.1:80 * Test Magna side menu * attempt to pass test * fix test * remove comments * fix some code smells * fix test * resolve comments * fix bug * resolved comments * resolve comments * resolve comments * update snapshot * resolved comments Co-authored-by: jwu-fisker <jwu@fiskerinc.com> * Cec 2752 small fix (#253) * first commit * removed comments * remove more comments * fix build issues * fix unused vars * update snapshot * fix test * Fix connect ECONNREFUSED 127.0.0.1:80 * Test Magna side menu * attempt to pass test * fix test * remove comments * fix some code smells * fix test * resolve comments * fix bug * resolved comments * resolve comments * resolve comments * update snapshot * resolved comments * small fix Co-authored-by: jwu-fisker <jwu@fiskerinc.com> Co-authored-by: Paul Adamsen <117673433+pauladamseniii@users.noreply.github.com> Co-authored-by: das31 <31259710+das31@users.noreply.github.com>
This commit is contained in:
55
src/components/Contexts/IssueContext.jsx
Normal file
55
src/components/Contexts/IssueContext.jsx
Normal file
@@ -0,0 +1,55 @@
|
||||
import React, { useContext, useState, useMemo, useCallback } from "react";
|
||||
import api from "../../services/issueAPI";
|
||||
|
||||
const IssueContext = React.createContext();
|
||||
|
||||
export const IssueProvider = ({ children }) => {
|
||||
const [issue, setIssue] = useState({});
|
||||
const [issues, setIssues] = useState([]);
|
||||
const [totalIssues, setTotalIssues] = useState(0);
|
||||
|
||||
const getIssue = useCallback(async (id, token) => {
|
||||
const result = await api.getIssue(id, token);
|
||||
if (result.error) throw new Error(`Get issue error. ${result.message}`);
|
||||
|
||||
setIssue(result.data ?? []);
|
||||
return result;
|
||||
}, []);
|
||||
|
||||
const getIssues = useCallback(async (search,token) => {
|
||||
const result = await api.getIssues(search,token);
|
||||
if (result.error) {
|
||||
setIssues([]);
|
||||
throw new Error(`Get issues error. ${result.message}`);
|
||||
}
|
||||
setIssues(result.data ?? []);
|
||||
if (result.total) {
|
||||
setTotalIssues(result.total);
|
||||
}
|
||||
}, []);
|
||||
|
||||
const deleteIssue = useCallback(async (id, token) => {
|
||||
const result = await api.deleteIssue(id, token);
|
||||
if (result.error)
|
||||
throw new Error(`Delete issue error. ${result.message}`);
|
||||
return result;
|
||||
}, []);
|
||||
|
||||
const value = useMemo(() => ({
|
||||
totalIssues,
|
||||
issue,
|
||||
issues,
|
||||
|
||||
deleteIssue,
|
||||
getIssue,
|
||||
getIssues,
|
||||
}), [totalIssues, issue, issues, deleteIssue, getIssue, getIssues]);
|
||||
|
||||
return (
|
||||
<IssueContext.Provider value={value}>
|
||||
{children}
|
||||
</IssueContext.Provider>
|
||||
);
|
||||
};
|
||||
|
||||
export const useIssueContext = () => useContext(IssueContext);
|
||||
Reference in New Issue
Block a user