added correct category ids
This commit is contained in:
@ -1,4 +1,5 @@
|
|||||||
"use server";
|
"use server";
|
||||||
|
//https://github.com/vercel/next.js/discussions/63862
|
||||||
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { getAllAvatarParts } from "@/lib/api";
|
import { getAllAvatarParts } from "@/lib/api";
|
||||||
@ -6,16 +7,37 @@ import { AvatarCustomization } from "@/components/avatarcustomization/page";
|
|||||||
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
||||||
import ChunithmScorePlaylog from "@/components/scoreplaylog/page";
|
import ChunithmScorePlaylog from "@/components/scoreplaylog/page";
|
||||||
|
|
||||||
const getAvatarParts = async () => {
|
// the number is the category id for the specific part
|
||||||
console.log("Executed on the server side");
|
|
||||||
|
|
||||||
const avatarParts = await getAllAvatarParts();
|
const getAvatarHeadAccessories = async () => {
|
||||||
|
const avatarParts = await getAllAvatarParts(2);
|
||||||
|
return { avatarParts };
|
||||||
|
};
|
||||||
|
|
||||||
|
const getAvatarFaceAccessories = async () => {
|
||||||
|
const avatarParts = await getAllAvatarParts(3);
|
||||||
|
return { avatarParts };
|
||||||
|
};
|
||||||
|
|
||||||
|
const getAvatarItemAccessories = async () => {
|
||||||
|
const avatarParts = await getAllAvatarParts(5);
|
||||||
|
return { avatarParts };
|
||||||
|
};
|
||||||
|
const getAvatarBackAccessories = async () => {
|
||||||
|
const avatarParts = await getAllAvatarParts(7);
|
||||||
|
return { avatarParts };
|
||||||
|
};
|
||||||
|
const getAvatarWearAccessories = async () => {
|
||||||
|
const avatarParts = await getAllAvatarParts(1);
|
||||||
return { avatarParts };
|
return { avatarParts };
|
||||||
};
|
};
|
||||||
|
|
||||||
const Page = async () => {
|
const Page = async () => {
|
||||||
console.log("Executed on the server side");
|
const AvatarHeadAccessories = await getAvatarHeadAccessories();
|
||||||
const avatarPartsData = await getAvatarParts();
|
const AvatarFaceAccessories = await getAvatarFaceAccessories();
|
||||||
|
const AvatarItemAccessories = await getAvatarItemAccessories();
|
||||||
|
const AvatarBackAccessories = await getAvatarBackAccessories();
|
||||||
|
const AvatarWearAccessories = await getAvatarWearAccessories();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="p-10">
|
<div className="p-10">
|
||||||
@ -29,7 +51,13 @@ const Page = async () => {
|
|||||||
</TabsContent>
|
</TabsContent>
|
||||||
<TabsContent value="customize">
|
<TabsContent value="customize">
|
||||||
<div className="p-10">
|
<div className="p-10">
|
||||||
<AvatarCustomization avatarSelectionData={avatarPartsData} />
|
<AvatarCustomization
|
||||||
|
avatarHeadSelectionData={AvatarHeadAccessories}
|
||||||
|
avatarFaceSelectionData={AvatarFaceAccessories}
|
||||||
|
avatarItemSelectionData={AvatarItemAccessories}
|
||||||
|
avatarBackSelectionData={AvatarBackAccessories}
|
||||||
|
avatarWearSelectionData={AvatarWearAccessories}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</TabsContent>
|
</TabsContent>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
@ -35,13 +35,30 @@ import { zodResolver } from "@hookform/resolvers/zod";
|
|||||||
import { toast } from "../ui/use-toast";
|
import { toast } from "../ui/use-toast";
|
||||||
|
|
||||||
type AvatarSelectionProps = {
|
type AvatarSelectionProps = {
|
||||||
avatarSelectionData: {
|
avatarHeadSelectionData: {
|
||||||
|
avatarParts: chunithm_avatar[];
|
||||||
|
};
|
||||||
|
|
||||||
|
avatarFaceSelectionData: {
|
||||||
|
avatarParts: chunithm_avatar[];
|
||||||
|
};
|
||||||
|
avatarItemSelectionData: {
|
||||||
|
avatarParts: chunithm_avatar[];
|
||||||
|
};
|
||||||
|
avatarBackSelectionData: {
|
||||||
|
avatarParts: chunithm_avatar[];
|
||||||
|
};
|
||||||
|
avatarWearSelectionData: {
|
||||||
avatarParts: chunithm_avatar[];
|
avatarParts: chunithm_avatar[];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export const AvatarCustomization: FC<AvatarSelectionProps> = ({
|
export const AvatarCustomization: FC<AvatarSelectionProps> = ({
|
||||||
avatarSelectionData,
|
avatarHeadSelectionData,
|
||||||
|
avatarFaceSelectionData,
|
||||||
|
avatarItemSelectionData,
|
||||||
|
avatarBackSelectionData,
|
||||||
|
avatarWearSelectionData,
|
||||||
}) => {
|
}) => {
|
||||||
const FormSchema = z.object({
|
const FormSchema = z.object({
|
||||||
AvatarHeadAccessory: z.number({
|
AvatarHeadAccessory: z.number({
|
||||||
@ -98,7 +115,7 @@ export const AvatarCustomization: FC<AvatarSelectionProps> = ({
|
|||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
{field.value
|
{field.value
|
||||||
? avatarSelectionData.avatarParts.find(
|
? avatarHeadSelectionData.avatarParts.find(
|
||||||
(part) => part.avatarAccessoryId === field.value
|
(part) => part.avatarAccessoryId === field.value
|
||||||
)?.name
|
)?.name
|
||||||
: "Select Avatar Head Item"}
|
: "Select Avatar Head Item"}
|
||||||
@ -111,9 +128,9 @@ export const AvatarCustomization: FC<AvatarSelectionProps> = ({
|
|||||||
{/* bugged */}
|
{/* bugged */}
|
||||||
{/* <CommandInput placeholder="Search Avatar Head Parts..." /> */}
|
{/* <CommandInput placeholder="Search Avatar Head Parts..." /> */}
|
||||||
<CommandList>
|
<CommandList>
|
||||||
<CommandEmpty>No language found.</CommandEmpty>
|
<CommandEmpty>No avatar part found.</CommandEmpty>
|
||||||
<CommandGroup>
|
<CommandGroup>
|
||||||
{avatarSelectionData.avatarParts.map((part) => (
|
{avatarHeadSelectionData.avatarParts.map((part) => (
|
||||||
<CommandItem
|
<CommandItem
|
||||||
value={part.name ?? ""}
|
value={part.name ?? ""}
|
||||||
key={part.avatarAccessoryId}
|
key={part.avatarAccessoryId}
|
||||||
@ -163,7 +180,7 @@ export const AvatarCustomization: FC<AvatarSelectionProps> = ({
|
|||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
{field.value
|
{field.value
|
||||||
? avatarSelectionData.avatarParts.find(
|
? avatarFaceSelectionData.avatarParts.find(
|
||||||
(part) => part.avatarAccessoryId === field.value
|
(part) => part.avatarAccessoryId === field.value
|
||||||
)?.name
|
)?.name
|
||||||
: "Select Avatar Face Item"}
|
: "Select Avatar Face Item"}
|
||||||
@ -178,7 +195,7 @@ export const AvatarCustomization: FC<AvatarSelectionProps> = ({
|
|||||||
<CommandList>
|
<CommandList>
|
||||||
<CommandEmpty>No language found.</CommandEmpty>
|
<CommandEmpty>No language found.</CommandEmpty>
|
||||||
<CommandGroup>
|
<CommandGroup>
|
||||||
{avatarSelectionData.avatarParts.map((part) => (
|
{avatarFaceSelectionData.avatarParts.map((part) => (
|
||||||
<CommandItem
|
<CommandItem
|
||||||
value={part.name ?? ""}
|
value={part.name ?? ""}
|
||||||
key={part.avatarAccessoryId}
|
key={part.avatarAccessoryId}
|
||||||
@ -228,7 +245,7 @@ export const AvatarCustomization: FC<AvatarSelectionProps> = ({
|
|||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
{field.value
|
{field.value
|
||||||
? avatarSelectionData.avatarParts.find(
|
? avatarItemSelectionData.avatarParts.find(
|
||||||
(part) => part.avatarAccessoryId === field.value
|
(part) => part.avatarAccessoryId === field.value
|
||||||
)?.name
|
)?.name
|
||||||
: "Select Avatar Head Item"}
|
: "Select Avatar Head Item"}
|
||||||
@ -241,9 +258,9 @@ export const AvatarCustomization: FC<AvatarSelectionProps> = ({
|
|||||||
{/* bugged */}
|
{/* bugged */}
|
||||||
{/* <CommandInput placeholder="Search Avatar Head Parts..." /> */}
|
{/* <CommandInput placeholder="Search Avatar Head Parts..." /> */}
|
||||||
<CommandList>
|
<CommandList>
|
||||||
<CommandEmpty>No language found.</CommandEmpty>
|
<CommandEmpty>No avatar part found.</CommandEmpty>
|
||||||
<CommandGroup>
|
<CommandGroup>
|
||||||
{avatarSelectionData.avatarParts.map((part) => (
|
{avatarItemSelectionData.avatarParts.map((part) => (
|
||||||
<CommandItem
|
<CommandItem
|
||||||
value={part.name ?? ""}
|
value={part.name ?? ""}
|
||||||
key={part.avatarAccessoryId}
|
key={part.avatarAccessoryId}
|
||||||
@ -293,7 +310,7 @@ export const AvatarCustomization: FC<AvatarSelectionProps> = ({
|
|||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
{field.value
|
{field.value
|
||||||
? avatarSelectionData.avatarParts.find(
|
? avatarBackSelectionData.avatarParts.find(
|
||||||
(part) => part.avatarAccessoryId === field.value
|
(part) => part.avatarAccessoryId === field.value
|
||||||
)?.name
|
)?.name
|
||||||
: "Select Avatar Back Item"}
|
: "Select Avatar Back Item"}
|
||||||
@ -306,9 +323,9 @@ export const AvatarCustomization: FC<AvatarSelectionProps> = ({
|
|||||||
{/* bugged */}
|
{/* bugged */}
|
||||||
{/* <CommandInput placeholder="Search Avatar Head Parts..." /> */}
|
{/* <CommandInput placeholder="Search Avatar Head Parts..." /> */}
|
||||||
<CommandList>
|
<CommandList>
|
||||||
<CommandEmpty>No language found.</CommandEmpty>
|
<CommandEmpty>No avatar part found.</CommandEmpty>
|
||||||
<CommandGroup>
|
<CommandGroup>
|
||||||
{avatarSelectionData.avatarParts.map((part) => (
|
{avatarBackSelectionData.avatarParts.map((part) => (
|
||||||
<CommandItem
|
<CommandItem
|
||||||
value={part.name ?? ""}
|
value={part.name ?? ""}
|
||||||
key={part.avatarAccessoryId}
|
key={part.avatarAccessoryId}
|
||||||
@ -358,7 +375,7 @@ export const AvatarCustomization: FC<AvatarSelectionProps> = ({
|
|||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
{field.value
|
{field.value
|
||||||
? avatarSelectionData.avatarParts.find(
|
? avatarWearSelectionData.avatarParts.find(
|
||||||
(part) => part.avatarAccessoryId === field.value
|
(part) => part.avatarAccessoryId === field.value
|
||||||
)?.name
|
)?.name
|
||||||
: "Select Avatar Body Item"}
|
: "Select Avatar Body Item"}
|
||||||
@ -371,9 +388,9 @@ export const AvatarCustomization: FC<AvatarSelectionProps> = ({
|
|||||||
{/* bugged */}
|
{/* bugged */}
|
||||||
{/* <CommandInput placeholder="Search Avatar Head Parts..." /> */}
|
{/* <CommandInput placeholder="Search Avatar Head Parts..." /> */}
|
||||||
<CommandList>
|
<CommandList>
|
||||||
<CommandEmpty>No language found.</CommandEmpty>
|
<CommandEmpty>No avatar part found.</CommandEmpty>
|
||||||
<CommandGroup>
|
<CommandGroup>
|
||||||
{avatarSelectionData.avatarParts.map((part) => (
|
{avatarWearSelectionData.avatarParts.map((part) => (
|
||||||
<CommandItem
|
<CommandItem
|
||||||
value={part.name ?? ""}
|
value={part.name ?? ""}
|
||||||
key={part.avatarAccessoryId}
|
key={part.avatarAccessoryId}
|
||||||
|
@ -181,7 +181,7 @@ export async function getAllAimeCards() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export async function getAllAvatarParts() {
|
export async function getAllAvatarParts(category: number) {
|
||||||
const { user } = await getAuth();
|
const { user } = await getAuth();
|
||||||
|
|
||||||
if (!user || !user.accessCode) {
|
if (!user || !user.accessCode) {
|
||||||
@ -190,7 +190,7 @@ export async function getAllAvatarParts() {
|
|||||||
|
|
||||||
const avatarParts = await artemis.chuni_static_avatar.findMany({
|
const avatarParts = await artemis.chuni_static_avatar.findMany({
|
||||||
where: {
|
where: {
|
||||||
category: 1
|
category: category
|
||||||
},
|
},
|
||||||
select: {
|
select: {
|
||||||
id: true,
|
id: true,
|
||||||
|
Reference in New Issue
Block a user