|
|
|
@ -42,10 +42,14 @@ export default function HeadmasterHome() { |
|
|
|
|
const [listTeacher, setListTeacher] = useState([]); |
|
|
|
|
const [isLoading, setIsLoading] = useState(false); |
|
|
|
|
const [criteriaSchool, setCriteriaSchool] = useState(); |
|
|
|
|
const [isLoadMoreOnline, setLoadMoreOnline] = useState(true); |
|
|
|
|
const [limitOnline] = useState(10); |
|
|
|
|
const [offsetOnline, setOffsetOnline] = useState(0); |
|
|
|
|
const [isEndOnlineClasses, setIsEndOnlineClasses] = useState(false); |
|
|
|
|
|
|
|
|
|
const schoolName = !!schoolId |
|
|
|
|
? !!school_name ? decodeURIComponent(school_name) : '' |
|
|
|
|
: `Hiệu trưởng ${authentication?.user?.organization_name}`; |
|
|
|
|
: `${authentication?.user?.organization_name}`; |
|
|
|
|
const id = !!schoolId ? schoolId : authentication?.user?.organization_id; |
|
|
|
|
|
|
|
|
|
const changeSemester = (item) => { |
|
|
|
@ -148,6 +152,48 @@ export default function HeadmasterHome() { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const handleScroll = (e) => { |
|
|
|
|
if ( |
|
|
|
|
e.target.scrollHeight - e.target.scrollTop < e.target.clientHeight + 5 && |
|
|
|
|
isLoadMoreOnline && |
|
|
|
|
!isLoading |
|
|
|
|
) { |
|
|
|
|
onLoadMoreClasses(); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// Load More Classes for Teacher
|
|
|
|
|
const onLoadMoreClasses = async () => { |
|
|
|
|
let offsetOnlineMore = offsetOnline + limitOnline; |
|
|
|
|
let listNext = []; |
|
|
|
|
setIsLoading(true); |
|
|
|
|
try { |
|
|
|
|
if (!isEndOnlineClasses) { |
|
|
|
|
const endPoint = `/report/api_report/teacherByOrganizationId?organization_id=${id}&limit=${limitOnline}&offset=${offsetOnlineMore}`; |
|
|
|
|
const res = await apiCaller(endPoint, "GET"); |
|
|
|
|
|
|
|
|
|
if (res?.status) { |
|
|
|
|
listNext = res?.data; |
|
|
|
|
setOffsetOnline(offsetOnline + limitOnline); |
|
|
|
|
if (res?.data?.length < limitOnline) { |
|
|
|
|
setLoadMoreOnline(false); |
|
|
|
|
if (res?.data?.length == 0) setLoadMoreOnline(false); |
|
|
|
|
setIsEndOnlineClasses(true); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
setIsEndOnlineClasses(true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
let listPrev = listTeacher; |
|
|
|
|
setListTeacher(listPrev?.concat(listNext)); |
|
|
|
|
} catch (e) { |
|
|
|
|
} finally { |
|
|
|
|
setIsLoading(false); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const getDataCriteriaSchool = async () => { |
|
|
|
|
try { |
|
|
|
|
setIsLoading(true); |
|
|
|
@ -292,7 +338,7 @@ export default function HeadmasterHome() { |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
) : ( |
|
|
|
|
<div className="headmaster-home-list-teacher headmaster-home-right-p-h scrollbar-custom"> |
|
|
|
|
<div onScroll={handleScroll} className="headmaster-home-list-teacher headmaster-home-right-p-h scrollbar-custom"> |
|
|
|
|
{!isLoading && !listTeacher?.length && ( |
|
|
|
|
<p style={{fontSize: '1.8rem', fontWeight: 700}}> |
|
|
|
|
Không có giáo viên nào |
|
|
|
|