---
export const partial = true;

import UserListItem from '../../../../components/dashboard/user-mgmt/UserListItem.astro';

type PermissionsData = {
	user: string;
	rank: string;
};

type Users = {
	id: string;
	name: string;
	email: string | null;
	avatar: string | null;
	username: string;
	permissionsData: PermissionsData | undefined;
};

type FullJsonData = {
	users: Users[];
	searchQuery?: string;
};

async function setData() {
	const jsonData: FullJsonData | undefined = await Astro.request.json();

	if (jsonData) return jsonData;

	return 'No Users to display';
}

const usersData = await setData();
---

{
	typeof usersData !== "string"
		? usersData.users.map((user) => (
				<UserListItem user={user} searchQuery={usersData.searchQuery} />
			))
		: usersData
}
