Skip to content

Commit adf4645

Browse files
committed
contractor in office filter toggle
1 parent 5616e6c commit adf4645

File tree

4 files changed

+36
-16
lines changed

4 files changed

+36
-16
lines changed

src/api/Apis.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ export async function getContractorData(page:number=0,count:number=10,contractor
365365
// debugger
366366
}
367367

368-
export async function getInOfficeContractorData(page:number=0,count:number=10) {
368+
export async function getInOfficeContractorData(page:number=0,count:number=10,contractor:String = '',purpose:String = '', site:String='') {
369369
const url = `/product/reception/checkin/in/user/data?page=${page}&count=${count}`
370370

371371
const { data } = await apis.get(url)

src/features/Home/HomeView.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ const HomeView: FunctionComponent<Props> = (props) => {
324324
<CustomizedSwitch
325325
//@ts-ignore
326326
style={{ marginTop: '33px', marginLeft: '27px', height: '36px' }}
327-
label={"In Office"} checked={inOffice} onChange={() => { setInOffice1(!inOffice) }} />
327+
label={"In Office"} checked={inOffice} onChange={() => { setInOffice(!inOffice) }} />
328328
{/* <Button onClick={() => { setFilter({ site: "", purpose: "", visitor: "" }); dispatch(fetchInOfficeVisitors()) }}
329329
classes={{
330330
root: classes.buttonRoot, // class name, e.g. `classes-nesting-root-x`
@@ -334,7 +334,7 @@ const HomeView: FunctionComponent<Props> = (props) => {
334334
</Button> */}
335335
<SelectInput style={{ marginTop: '33px', marginLeft: '27px' }} onChange={(e: any) => { debugger; handleFilterChange({ purpose: e.target.value }) }} menuOptions={purpose.map(item => ({ title: item }))} defaultValue="All Purpose" value={filter.purpose} />
336336
<SelectInput style={{ marginTop: '33px', marginLeft: '27px' }} onChange={(e: any) => { debugger; handleFilterChange({ site: e.target.value }) }} menuOptions={sites.map(item => ({ title: item.sitename }))} defaultValue="All Sites" value={filter.site} />
337-
<Button onClick={() => { setInOffice1(false);handleFilterChange({ site: "", purpose: "", visitor: "" }) }}
337+
<Button onClick={() => { setInOffice(false);handleFilterChange({ site: "", purpose: "", visitor: "" }) }}
338338
classes={{
339339
root: classes.buttonRoot, // class name, e.g. `classes-nesting-root-x`
340340
label: classes.label, // class name, e.g. `classes-nesting-label-x`

src/features/contractor/contractorSlice.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -172,16 +172,19 @@ export const fetchContractors = (
172172

173173
export const fetchInOfficeContractors = (
174174
page?: number
175-
, count?: number
175+
, count?: number,
176+
contractor?: string,
177+
purpose?: string,
178+
site?: string
176179
): AppThunk => async dispatch => {
177180
try {
178181
dispatch(fetchSites())
179182
dispatch(getContractorsStart())
180-
const contractors = await getInOfficeContractorData()
183+
const contractors = await getInOfficeContractorData(page,count,contractor,purpose,site)
181184
dispatch(getContractorsSuccess(contractors))
182185

183-
const purpose = await getPurpose()
184-
dispatch(getPurposeSuccess(purpose))
186+
const pur = await getPurpose()
187+
dispatch(getPurposeSuccess(pur))
185188
} catch (err) {
186189
dispatch(getContractorsFailure(err.toString()))
187190
}

src/features/contractor/contractorView.tsx

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import { CustomMenuItem } from 'components/CustomMenuItem';
3434
import Axios from 'axios';
3535
import { apis, checkout, serverUrl } from 'api/Apis';
3636
import { getBackdropStart, getBackdropStop } from 'app/BackdropSlice';
37+
import CustomizedSwitch from 'components/Switch';
3738

3839
const useStyles = makeStyles((theme: Theme) =>
3940
createStyles({
@@ -120,11 +121,14 @@ const ContractorView: FunctionComponent<Props> = (props) => {
120121
const [rowPerPage, setRowPerPage] = useState(10);
121122
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
122123
const [filter, setFilter] = useState({ contractor: "", purpose: "", site: "" })
124+
const [inOffice, setInOffice] = useState(false);
123125
const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {
124126
setAnchorEl(event.currentTarget);
125127
};
126128

127-
129+
const doFetch=(page=0, count=10, visitor="", purpose="", site="")=>{
130+
inOffice? dispatch(fetchInOfficeContractors(page, count, visitor, purpose, site)): dispatch(fetchContractors(page, count, visitor, purpose, site))
131+
}
128132
const handleFilterChange = (f: any) => {
129133
debugger;
130134
const newFilter = { ...filter, ...f }
@@ -135,7 +139,7 @@ const ContractorView: FunctionComponent<Props> = (props) => {
135139
contractor: contractor1
136140
} = newFilter
137141

138-
dispatch(fetchContractors(0, rowPerPage, contractor1, purpose1, site1))
142+
//dispatch(fetchContractors(0, rowPerPage, contractor1, purpose1, site1))
139143
}
140144
const handleClose = () => {
141145
setAnchorEl(null);
@@ -173,8 +177,6 @@ const ContractorView: FunctionComponent<Props> = (props) => {
173177
isSort: true
174178
}]
175179

176-
let tableRows: any = []
177-
178180
const dispatch = useDispatch()
179181

180182
const {
@@ -197,12 +199,23 @@ const ContractorView: FunctionComponent<Props> = (props) => {
197199
//dispatch(fetchHomeStats())
198200
}, [dispatch])
199201

202+
useEffect(() => {
203+
204+
const {
205+
purpose: purpose1,
206+
site: site1,
207+
contractor: contractor1
208+
} = filter
209+
doFetch(0, rowPerPage, contractor1, purpose1, site1)
210+
}, [inOffice,filter])
211+
200212
const handleCheckOut = async (id: any) => {
201213
dispatch(getBackdropStart())
202214
await checkout(id)
203215
.then(() => {
204216
//dispatch(fetchHomeStats())
205-
dispatch(fetchContractors(0, 10))
217+
//dispatch(fetchContractors(0, 10))
218+
doFetch(0, 10)
206219
dispatch(getBackdropStop())
207220
})
208221
.catch(() => dispatch(getBackdropStop()))
@@ -234,7 +247,7 @@ const ContractorView: FunctionComponent<Props> = (props) => {
234247
contractor: contractor1
235248
} = filter
236249
setRowPerPage(count)
237-
dispatch(fetchContractors(page, count, contractor1, purpose1, site1))
250+
doFetch(page, count, contractor1, purpose1, site1)
238251
},
239252
totalCount: pageCount,
240253
menuOptions: [{
@@ -262,14 +275,18 @@ const ContractorView: FunctionComponent<Props> = (props) => {
262275
<Box display="flex" justifyContent="start">
263276
<SearchInput style={{ marginTop: '33px', marginLeft: '27px' }} onChange={(e: any) => { debugger; handleFilterChange({ contractor: e.target.value }) }} value={filter.contractor} placeholder="Search contractor" />
264277
{/* <SelectInput style={{marginTop: '33px', marginLeft: '27px'}} value="In Office" /> */}
265-
<Button onClick={() => { setFilter({ site: "", purpose: "", contractor: "" }); dispatch(fetchInOfficeContractors()) }}
278+
<CustomizedSwitch
279+
//@ts-ignore
280+
style={{ marginTop: '33px', marginLeft: '27px', height: '36px' }}
281+
label={"In Office"} checked={inOffice} onChange={() => { setInOffice(!inOffice) }} />
282+
{/* <Button onClick={() => { setFilter({ site: "", purpose: "", contractor: "" }); dispatch(fetchInOfficeContractors()) }}
266283
classes={{
267284
root: classes.buttonRoot, // class name, e.g. `classes-nesting-root-x`
268285
label: classes.label, // class name, e.g. `classes-nesting-label-x`
269-
}} variant="contained" style={{ marginTop: '33px', marginLeft: '27px', height: '40px' }}>In Office</Button>
286+
}} variant="contained" style={{ marginTop: '33px', marginLeft: '27px', height: '40px' }}>In Office</Button> */}
270287
<SelectInput style={{ marginTop: '33px', marginLeft: '27px' }} onChange={(e: any) => { debugger; handleFilterChange({ purpose: e.target.value }) }} menuOptions={purpose.map(item => ({ title: item }))} defaultValue="All Purpose" value={filter.purpose} />
271288
<SelectInput style={{ marginTop: '33px', marginLeft: '27px' }} onChange={(e: any) => { debugger; handleFilterChange({ site: e.target.value }) }} menuOptions={sites.map(item => ({ title: item.sitename }))} defaultValue="All Sites" value={filter.site} />
272-
<Button onClick={() => { handleFilterChange({ site: "", purpose: "", contractor: "" })}}
289+
<Button onClick={() => { setInOffice(false);handleFilterChange({ site: "", purpose: "", contractor: "" })}}
273290
classes={{
274291
root: classes.buttonRoot, // class name, e.g. `classes-nesting-root-x`
275292
label: classes.label, // class name, e.g. `classes-nesting-label-x`

0 commit comments

Comments
 (0)