refactor: user admin service (#23785)

This commit is contained in:
Jason Rasmussen
2025-11-11 07:42:33 -05:00
committed by GitHub
parent 2611e2ec20
commit 2f40f5aad8
15 changed files with 395 additions and 333 deletions

View File

@@ -1,19 +1,16 @@
<script lang="ts">
import { IconButton, type MenuItem } from '@immich/ui';
import type { ActionItem } from '$lib/types';
import { IconButton, type IconButtonProps } from '@immich/ui';
type Props = {
action: MenuItem;
action: ActionItem;
};
const { action }: Props = $props();
const { title, icon, onSelect } = $derived(action);
const { title, icon, color = 'secondary', props: other = {}, onSelect } = $derived(action);
const onclick = (event: Event) => onSelect?.({ event, item: action });
</script>
<IconButton
shape="round"
color="secondary"
variant="ghost"
{icon}
aria-label={title}
onclick={(event: Event) => onSelect?.({ event, item: action })}
/>
{#if action.$if?.() ?? true}
<IconButton variant="ghost" {color} shape="round" {...other as IconButtonProps} {icon} aria-label={title} {onclick} />
{/if}

View File

@@ -0,0 +1,18 @@
<script lang="ts">
import type { ActionItem } from '$lib/types';
import { Button, type ButtonProps, Text } from '@immich/ui';
type Props = {
action: ActionItem;
};
const { action }: Props = $props();
const { title, icon, color = 'secondary', props: other = {}, onSelect } = $derived(action);
const onclick = (event: Event) => onSelect?.({ event, item: action });
</script>
{#if action.$if?.() ?? true}
<Button variant="ghost" size="small" {color} {...other as ButtonProps} leadingIcon={icon} {onclick}>
<Text class="hidden md:block">{title}</Text>
</Button>
{/if}

View File

@@ -0,0 +1,16 @@
<script lang="ts">
import type { ActionItem } from '$lib/types';
import { IconButton, type IconButtonProps } from '@immich/ui';
type Props = {
action: ActionItem;
};
const { action }: Props = $props();
const { title, icon, props: other = {}, onSelect } = $derived(action);
const onclick = (event: Event) => onSelect?.({ event, item: action });
</script>
{#if action.$if?.() ?? true}
<IconButton shape="round" color="primary" {...other as IconButtonProps} {icon} aria-label={title} {onclick} />
{/if}