Refactor player components: streamline state management and improve code readability in PermissionsDropdown, Players, and PrefixDropdown
Some checks failed
SteamWarCI Build failed

This commit is contained in:
2025-12-02 22:35:32 +01:00
parent 3bde299ea5
commit e1220ff5ac
4 changed files with 26 additions and 24 deletions

View File

@@ -28,6 +28,11 @@
let value = $state(perms); let value = $state(perms);
let prevValue = $state(perms); let prevValue = $state(perms);
$effect(() => {
value = perms;
prevValue = perms;
});
function onChange(change: string[]) { function onChange(change: string[]) {
$permissions.perms.forEach((perm) => { $permissions.perms.forEach((perm) => {
if (prevValue.includes(perm) && !change.includes(perm)) { if (prevValue.includes(perm) && !change.includes(perm)) {

View File

@@ -47,7 +47,7 @@
let rows = $state(0); let rows = $state(0);
$effect(() => { $effect(() => {
$dataRepo.queryPlayers(search || undefined, undefined, undefined, pagination.pageSize, pagination.pageIndex, true, true).then((res) => { $dataRepo.queryPlayers(search || undefined, undefined, undefined, pagination.pageSize, pagination.pageIndex, true, false).then((res) => {
data = res.entries; data = res.entries;
rows = res.rows; rows = res.rows;
}); });

View File

@@ -18,16 +18,18 @@
--> -->
<script lang="ts"> <script lang="ts">
import {Select, SelectContent, SelectItem, SelectTrigger} from "@components/ui/select"; import { Select, SelectContent, SelectItem, SelectTrigger } from "@components/ui/select";
import {permissions} from "@stores/stores.ts"; import { permissions } from "@stores/stores.ts";
import {permsRepo} from "@repo/perms.ts"; import { permsRepo } from "@repo/perms.ts";
const { const { prefix, uuid }: { prefix: string; uuid: string } = $props();
prefix, uuid
}: { prefix: string, uuid: string } = $props();
let value = $state(prefix); let value = $state(prefix);
$effect(() => {
value = prefix;
});
function onChange(change: string) { function onChange(change: string) {
$permsRepo.setPrefix(uuid, change); $permsRepo.setPrefix(uuid, change);

View File

@@ -17,8 +17,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import type {ColumnDef} from "@tanstack/table-core"; import type { ColumnDef } from "@tanstack/table-core";
import type {Player} from "@type/data.ts"; import type { Player } from "@type/data.ts";
import { renderComponent } from "@components/ui/data-table"; import { renderComponent } from "@components/ui/data-table";
import PermissionsDropdown from "@components/moderator/pages/players/PermissionsDropdown.svelte"; import PermissionsDropdown from "@components/moderator/pages/players/PermissionsDropdown.svelte";
import PrefixDropdown from "@components/moderator/pages/players/PrefixDropdown.svelte"; import PrefixDropdown from "@components/moderator/pages/players/PrefixDropdown.svelte";
@@ -36,25 +36,20 @@ export const columns: ColumnDef<Player[]> = [
accessorKey: "prefix", accessorKey: "prefix",
header: "Prefix", header: "Prefix",
cell: ({ row }) => { cell: ({ row }) => {
return renderComponent( return renderComponent(PrefixDropdown, {
PrefixDropdown, {
prefix: row.getValue("prefix"), prefix: row.getValue("prefix"),
uuid: row.getValue("uuid"), uuid: row.getValue("uuid"),
}, });
);
}, },
}, },
{ {
accessorKey: "perms", accessorKey: "perms",
header: "Permissions", header: "Permissions",
cell: ({ row }) => { cell: ({ row }) => {
return renderComponent( return renderComponent(PermissionsDropdown, {
PermissionsDropdown,
{
perms: row.getValue("perms"), perms: row.getValue("perms"),
uuid: row.getValue("uuid"), uuid: row.getValue("uuid"),
}, });
);
}, },
}, },
]; ];