diff --git a/src/components/rpkm/components/group-picker.astro b/src/components/rpkm/components/group-picker.astro index fd8fd60..941e70d 100644 --- a/src/components/rpkm/components/group-picker.astro +++ b/src/components/rpkm/components/group-picker.astro @@ -364,6 +364,10 @@ const member2 = members.length > 1 ? members[1] : null; import { AvatarMap } from "@rpkm/data/profile"; import { getProfile } from "@/lib/profileAPI"; import type { Group, User } from "@/types/common"; + import { disablePickingDate } from "@rpkm/data/date"; + + const currentDate = new Date(); + const isPickingDisabled = currentDate >= disablePickingDate; document.addEventListener("DOMContentLoaded", async () => { const userResponse = await getProfile(); @@ -380,8 +384,6 @@ const member2 = members.length > 1 ? members[1] : null; const groupData = groupResponse.data.data as Group; const isConfirmed = groupData ? groupData.isConfirmed : undefined; - const isOwner = - groupData && user ? groupData.ownerId === user.id : undefined; const memberCount = groupData ? groupData.memberCount : -1; const input = document.getElementById("room-id-insert") as HTMLInputElement; @@ -490,6 +492,60 @@ const member2 = members.length > 1 ? members[1] : null; } } + if (isPickingDisabled) { + input.disabled = true; + input.placeholder = "ไม่สามารถกรอกเลขห้องได้"; + headGroupBtn.disabled = true; + headGroupBtn.classList.add( + "cursor-not-allowed", + "opacity-50", + "brightness-75" + ); + headGroupBtn.classList.remove("cursor-pointer"); + backBtn?.classList.add("hidden"); + exitButton?.classList.add("hidden"); + submitGroupButton.disabled = true; + submitGroupButton.classList.add( + "cursor-not-allowed", + "opacity-50", + "brightness-75" + ); + submitGroupButton.classList.remove("cursor-pointer"); + joinGroupButton.disabled = true; + joinGroupButton.classList.add( + "cursor-not-allowed", + "opacity-50", + "brightness-75" + ); + joinGroupButton.classList.remove("cursor-pointer"); + } else { + input.disabled = false; + input.placeholder = "โปรดกรอกรหัสห้อง"; + headGroupBtn.disabled = false; + headGroupBtn.classList.remove( + "cursor-not-allowed", + "opacity-50", + "brightness-75" + ); + headGroupBtn.classList.add("cursor-pointer"); + backBtn?.classList.remove("hidden"); + exitButton?.classList.remove("hidden"); + submitGroupButton.disabled = false; + submitGroupButton.classList.remove( + "cursor-not-allowed", + "opacity-50", + "brightness-75" + ); + submitGroupButton.classList.add("cursor-pointer"); + joinGroupButton.disabled = false; + joinGroupButton.classList.remove( + "cursor-not-allowed", + "opacity-50", + "brightness-75" + ); + joinGroupButton.classList.add("cursor-pointer"); + } + input?.addEventListener("input", toggleSubmitButton); toggleSubmitButton(); @@ -726,7 +782,7 @@ const member2 = members.length > 1 ? members[1] : null; } }); - if (isConfirmed) { + if (isConfirmed || isPickingDisabled) { exitButton?.classList.add("hidden"); backBtn?.classList.add("hidden"); } else { diff --git a/src/components/rpkm/components/house-display.astro b/src/components/rpkm/components/house-display.astro new file mode 100644 index 0000000..57c5945 --- /dev/null +++ b/src/components/rpkm/components/house-display.astro @@ -0,0 +1,91 @@ +--- +import Frame from "@/components/common/Frame.astro"; +import { getGroupByGroupId } from "@/lib/groupAPI"; +import { getProfile } from "@/lib/profileAPI"; +import type { Group, User } from "@/types/common"; + +const token = Astro.cookies.get("token")?.value; + +let groupData: Group | null = null; +let user: User | null = null; + +if (token) { + let groupID = ""; + const userResponse = await getProfile(token); + if (userResponse.success && userResponse.data) { + user = userResponse.data.user as User; + groupID = user.groupId ? user.groupId : ""; + if (groupID) { + const groupResponse = await getGroupByGroupId(groupID, token); + if (groupResponse.success && groupResponse.data) { + groupData = groupResponse.data.data as Group; + } else { + return Astro.redirect("/login"); + } + } else { + return Astro.redirect("/login"); + } + } else { + console.error("Failed to fetch user data:", userResponse.error); + } +} else { + return Astro.redirect("/login"); +} + +if (!groupData || !user) { + return Astro.redirect("/login"); +} + +const assignedHouse = null; // Replace with actual house attribute +--- + +
+ { + !assignedHouse ? ( + + {/* Title */} +

+ บ้านรับเพื่อนที่เลือกไว้ +

+ + {/* Empty Houses */} +
+

คุณไม่ได้เลือกบ้าน

+
+ + ) : ( + + {/* Title */} +

บ้านรับเพื่อนที่ได้

+ + {/* House Image */} + + + {/* House Name */} +

บ้าน xxx

+ + {/* House Instagram */} + + +

+ baan.something +

+
+ + ) + } +
diff --git a/src/components/rpkm/components/house-picker.astro b/src/components/rpkm/components/house-picker.astro index df5b3b2..0e46542 100644 --- a/src/components/rpkm/components/house-picker.astro +++ b/src/components/rpkm/components/house-picker.astro @@ -1,4 +1,5 @@ --- +import { disablePickingDate } from "@rpkm/data/date"; import { getHouses, type HouseDisplayType, @@ -16,6 +17,9 @@ import { getGroupByGroupId } from "@/lib/groupAPI"; import { getProfile } from "@/lib/profileAPI"; import type { Group, User } from "@/types/common"; +const currentDate = new Date(); +const isHousePickingDisabled = currentDate >= disablePickingDate; + const houseSizes = ["ทั้งหมด", "S", "M", "L", "XL", "XXL"]; let houseDisplayData: HouseDisplayType[] = []; @@ -89,7 +93,13 @@ const isPickAllMainHouses =
-

คุณยังไม่ได้เลือกบ้าน

+

+ { + !isHousePickingDisabled + ? "คุณยังไม่ได้เลือกบ้าน" + : "คุณไม่ได้เลือกบ้าน" + } +

@@ -253,42 +263,6 @@ const isPickAllMainHouses = - - -