AG
Size: a a a
AG
AG
const MyComponent: React.FC<PropType & MySecondProp & { children: number }> = ({children, some Props}) => {
...
return <>{children}</>;
}
AG
AG
AG
AG
MZ
export const takeDashboardData = (
companyId:string, token:string, limit:number) =>
async (dispatch: Dispatch<dashboardDataDispatchTypes>) => {
dispatch({
type: DASHBOARD_SHOW_LOADING
})
const url = "https://api./users"
const urlLimit = `limit=${limit}&companyId=`
const options = {headers: {"Authorization": `Bearer ${token}`}}
const fullUrl = url + urlLimit + companyId
try {
const response = await axios.get(fullUrl , options)
dispatch({
type: DASHBOARD_EMPLOYEE_DATA,
payload: response.data.users
})
dispatch({
type: DASHBOARD_HIDE_LOADING
})
} catch (e) {
dispatch({
type: DASHBOARD_LOADING_ERROR
})
dispatch({
type: DASHBOARD_HIDE_LOADING
})
}
}
MZ
AG
export const takeDashboardData = (
companyId:string, token:string, limit:number) =>
async (dispatch: Dispatch<dashboardDataDispatchTypes>) => {
dispatch({
type: DASHBOARD_SHOW_LOADING
})
const url = "https://api./users"
const urlLimit = `limit=${limit}&companyId=`
const options = {headers: {"Authorization": `Bearer ${token}`}}
const fullUrl = url + urlLimit + companyId
try {
const response = await axios.get(fullUrl , options)
dispatch({
type: DASHBOARD_EMPLOYEE_DATA,
payload: response.data.users
})
dispatch({
type: DASHBOARD_HIDE_LOADING
})
} catch (e) {
dispatch({
type: DASHBOARD_LOADING_ERROR
})
dispatch({
type: DASHBOARD_HIDE_LOADING
})
}
}
MZ
AG
MZ
AG
AG
export const takeDashboardData = (
companyId:string, token:string, limit:number) =>
async (dispatch: Dispatch<dashboardDataDispatchTypes>) => {
dispatch({
type: DASHBOARD_SHOW_LOADING
})
const url = "https://api./users"
const urlLimit = `limit=${limit}&companyId=`
const options = {headers: {"Authorization": `Bearer ${token}`}}
const fullUrl = url + urlLimit + companyId
try {
const response = await axios.get(fullUrl , options)
dispatch({
type: DASHBOARD_EMPLOYEE_DATA,
payload: response.data.users
})
dispatch({
type: DASHBOARD_HIDE_LOADING
})
} catch (e) {
dispatch({
type: DASHBOARD_LOADING_ERROR
})
dispatch({
type: DASHBOARD_HIDE_LOADING
})
}
}
MZ
useEffect(() => {
// Taking user id, token, companyId
const userId = window.sessionStorage.getItem("userId")
const userToken = window.sessionStorage.getItem("token")
const companyId = window.sessionStorage.getItem("companyId")
// dispatch and take all user Information, Loading data
userId
&& userToken
&& companyId
&& dispatch(takeUserInfo(userId, userToken))
&& dispatch(takeDashboardData(companyId, userToken, 4))
}, [dispatch])
return (
loading ? (
<h1>Loading</h1>
) : (
<Dashboard />
)
}
AG
useEffect(() => {
// Taking user id, token, companyId
const userId = window.sessionStorage.getItem("userId")
const userToken = window.sessionStorage.getItem("token")
const companyId = window.sessionStorage.getItem("companyId")
// dispatch and take all user Information, Loading data
userId
&& userToken
&& companyId
&& dispatch(takeUserInfo(userId, userToken))
&& dispatch(takeDashboardData(companyId, userToken, 4))
}, [dispatch])
return (
loading ? (
<h1>Loading</h1>
) : (
<Dashboard />
)
}
AG
AG
MZ
MZ
export const dashboardDataReducer = (
state: DefaultStateI = initialState,
action: dashboardDataDispatchTypes):DefaultStateI => {
switch (action.type) {
case DASHBOARD_EMPLOYEE_DATA:
return {
error: false,
employeeData: action.payload
}
case DASHBOARD_LOADING_ERROR:
return {
error: true
}
case DASHBOARD_SHOW_LOADING:
return {
loading: true
}
case DASHBOARD_HIDE_LOADING:
return {
loading: false
}
default:
return state
}
}