fix: auto scroll in modal landing

This commit is contained in:
Sabda Yagra 2025-08-15 13:50:20 +07:00
parent fb976f01bb
commit bd5d87c7ce
2 changed files with 103 additions and 93 deletions

View File

@ -151,8 +151,10 @@ const EventModal = ({
satker: false,
international: false,
});
const [agendaType, setAgendaType] = React.useState(""); // State untuk agendaType
const levelNumber = getCookiesDecrypt("ulne");
const userLevelId = getCookiesDecrypt("ulie");
const poldaState = Cookies.get("state");
const [agendaType, setAgendaType] = React.useState("");
const [selectedPolda, setSelectedPolda] = useState<string[]>([]);
const [selectedPolres, setSelectedPolres] = useState<string[]>([]);
const [selectedSatker, setSelectedSatker] = useState<string[]>([]);
@ -253,7 +255,7 @@ const EventModal = ({
useEffect(() => {
setIsDatePickerOpen(false);
}, [onClose])
}, [onClose]);
const handleCheckboxChange = (levelId: number) => {
setCheckedLevels((prev) => {
@ -351,8 +353,8 @@ const EventModal = ({
id: detailData?.id,
title: data.title,
description: data.description,
agendaType: agendaTypeList.join(","),
assignedToLevel: assignedToLevelList.join(","),
agendaType: agendaTypeList.join(","),
assignedToLevel: assignedToLevelList.join(","),
startDate: date?.from ? format(date.from, "yyyy-MM-dd") : null,
endDate: date?.to ? format(date.to, "yyyy-MM-dd") : null,
};
@ -393,13 +395,7 @@ const EventModal = ({
setIsAudioUploadFinish(true);
}
audioFiles.map(async (item: FileWithPreview, index: number) => {
await uploadResumableFile(
index,
String(id),
item,
"4",
"0"
);
await uploadResumableFile(index, String(id), item, "4", "0");
});
if (publish) {
setIsPublishing(true);
@ -433,7 +429,7 @@ const EventModal = ({
useEffect(() => {
console.log("Event data:", event);
console.log("Selected date:", selectedDate);
if (selectedDate) {
setDate({
from: selectedDate.date,
@ -479,23 +475,23 @@ const EventModal = ({
const countdown = setInterval(() => {
setTimer((prevTimer) => {
if (prevTimer <= 1) {
clearInterval(countdown);
clearInterval(countdown);
return 0;
}
return prevTimer - 1;
});
}, 1000);
}, 1000);
setTimeout(() => {
if (isRecording) {
handleStopRecording();
}
}, 120000);
}, 120000);
};
const handleStopRecording = () => {
setIsRecording(false);
setTimer(120);
setTimer(120);
};
const addAudioElement = (blob: Blob) => {
@ -742,7 +738,10 @@ const EventModal = ({
</div>
<div className="space-y-1.5">
<Label htmlFor="date">Tanggal</Label>
<Popover open={isDatePickerOpen} onOpenChange={() => setIsDatePickerOpen(true)}>
<Popover
open={isDatePickerOpen}
onOpenChange={() => setIsDatePickerOpen(true)}
>
<PopoverTrigger asChild>
<Button
variant="outline"
@ -789,26 +788,31 @@ const EventModal = ({
<div className="space-y-1.5">
<Label htmlFor="wilayahPublish">Jenis Agenda</Label>
<div className="flex flex-wrap items-center gap-2">
<div>
<Checkbox
id="semua"
checked={wilayahPublish.semua}
onCheckedChange={() => toggleWilayah("semua")}
/>
<label htmlFor="semua" className="ml-2 text-sm">
Semua
</label>
</div>
<div>
<Checkbox
id="nasional"
checked={wilayahPublish.nasional}
onCheckedChange={() => toggleWilayah("nasional")}
/>
<label htmlFor="nasional" className="ml-2 text-sm mr-2">
Nasional
</label>
</div>
{roleId === 1 && (
<div>
<Checkbox
id="semua"
checked={wilayahPublish.semua}
onCheckedChange={() => toggleWilayah("semua")}
/>
<label htmlFor="semua" className="ml-2 text-sm">
Semua
</label>
</div>
)}
{roleId === 1 && (
<div>
<Checkbox
id="nasional"
checked={wilayahPublish.nasional}
onCheckedChange={() => toggleWilayah("nasional")}
/>
<label htmlFor="nasional" className="ml-2 text-sm mr-2">
Nasional
</label>
</div>
)}
<div>
<Checkbox
id="polda"
@ -821,7 +825,7 @@ const EventModal = ({
{wilayahPublish.polda && (
<UnitMapping
unit="Polda"
isDetail={isDetailMode}
isDetail={isDetailMode}
initData={selectedPolda}
sendDataToParent={(data: any) =>
setSelectedPolda(data)
@ -829,59 +833,65 @@ const EventModal = ({
/>
)}
</div>
<div>
<Checkbox
id="polres"
checked={wilayahPublish.polres}
onCheckedChange={() => toggleWilayah("polres")}
/>
<label htmlFor="polres" className="ml-2 text-sm mr-2">
Polres
</label>
{wilayahPublish.polres && (
<UnitMapping
unit="Polres"
isDetail={isDetailMode}
initData={selectedPolres}
sendDataToParent={(data: any) =>
setSelectedPolres(data)
}
{(roleId === 1 || roleId === 4 || roleId === 3) && (
<div>
<Checkbox
id="polres"
checked={wilayahPublish.polres}
onCheckedChange={() => toggleWilayah("polres")}
/>
)}
</div>
<div>
<Checkbox
id="satker"
checked={wilayahPublish.satker}
onCheckedChange={() => toggleWilayah("satker")}
/>
<label htmlFor="satker" className="mx-2 text-sm mr-2">
Satker
</label>
{wilayahPublish.satker && (
<UnitMapping
unit="Satker"
isDetail={isDetailMode}
initData={selectedSatker}
sendDataToParent={(data: any) =>
setSelectedSatker(data)
}
<label htmlFor="polres" className="ml-2 text-sm mr-2">
Polres
</label>
{wilayahPublish.polres && (
<UnitMapping
unit="Polres"
isDetail={isDetailMode}
initData={selectedPolres}
sendDataToParent={(data: any) =>
setSelectedPolres(data)
}
/>
)}
</div>
)}
{(roleId === 1 || roleId === 2) && (
<div>
<Checkbox
id="satker"
checked={wilayahPublish.satker}
onCheckedChange={() => toggleWilayah("satker")}
/>
)}
</div>
<div>
<Checkbox
id="international"
checked={wilayahPublish.international}
onCheckedChange={() => toggleWilayah("international")}
/>
<label
htmlFor="international"
className="ml-2 text-sm mr-2"
>
Internasional
</label>
</div>
<label htmlFor="satker" className="mx-2 text-sm mr-2">
Satker
</label>
{wilayahPublish.satker && (
<UnitMapping
unit="Satker"
isDetail={isDetailMode}
initData={selectedSatker}
sendDataToParent={(data: any) =>
setSelectedSatker(data)
}
/>
)}
</div>
)}
{roleId === 1 && (
<div>
<Checkbox
id="international"
checked={wilayahPublish.international}
onCheckedChange={() => toggleWilayah("international")}
/>
<label
htmlFor="international"
className="ml-2 text-sm mr-2"
>
Internasional
</label>
</div>
)}
</div>
</div>
@ -1203,7 +1213,7 @@ const EventModal = ({
</Button>
<Button
style={
roleId > 12
roleId > 12
? {
display: "none",
}

View File

@ -162,7 +162,7 @@ const HeroModal = ({
pagination={{ dynamicBullets: true }}
modules={[Pagination, Autoplay]}
onSwiper={(swiper) => (swiperRef.current = swiper)}
autoplay={{ delay: 3000 }}
autoplay={{ delay: 10000 }}
className="mySwiper w-full"
>
{dataContent?.map((list: any) => (
@ -311,7 +311,7 @@ const HeroNew = (props: { group?: string }) => {
useEffect(() => {
const timer = setTimeout(() => {
setIsLoading(false);
}, 3000);
}, 10000);
return () => clearTimeout(timer);
}, []);