Release 202506091000
This commit is contained in:
@@ -46,8 +46,6 @@ const createInputErrors = isInputError(createResult?.error) ? createResult.error
|
||||
const updateResult = Astro.getActionResult(actions.admin.attribute.update)
|
||||
Astro.locals.banners.addIfSuccess(updateResult, 'Attribute updated successfully')
|
||||
|
||||
const updatedAttributeId = updateResult?.data?.attribute.id ?? null
|
||||
|
||||
const sortBy = filters['sort-by']
|
||||
const sortOrder = filters['sort-order']
|
||||
|
||||
@@ -724,8 +722,6 @@ const makeSortUrl = (slug: NonNullable<(typeof filters)['sort-by']>) => {
|
||||
</div>
|
||||
</BaseLayout>
|
||||
|
||||
<script define:vars={{ updatedAttributeId }}></script>
|
||||
|
||||
<style>
|
||||
@keyframes highlight {
|
||||
0% {
|
||||
|
||||
@@ -14,12 +14,10 @@ import {
|
||||
} from '../../../constants/serviceSuggestionStatus'
|
||||
import { getServiceSuggestionTypeInfo } from '../../../constants/serviceSuggestionType'
|
||||
import BaseLayout from '../../../layouts/BaseLayout.astro'
|
||||
import { cn } from '../../../lib/cn'
|
||||
import { parseIntWithFallback } from '../../../lib/numbers'
|
||||
import { prisma } from '../../../lib/prisma'
|
||||
import { makeLoginUrl } from '../../../lib/redirectUrls'
|
||||
import { formatDateShort } from '../../../lib/timeAgo'
|
||||
import BadgeStandard from '../../../components/BadgeStandard.astro'
|
||||
|
||||
const user = Astro.locals.user
|
||||
if (!user?.admin) {
|
||||
|
||||
@@ -37,12 +37,8 @@ if (!user?.admin) {
|
||||
const { data: filters } = zodParseQueryParamsStoringErrors(
|
||||
{
|
||||
search: z.string().optional(),
|
||||
status: serviceSuggestionStatusesZodEnumBySlug
|
||||
.transform((slug) => serviceSuggestionStatusSlugToId(slug))
|
||||
.optional(),
|
||||
type: serviceSuggestionTypesZodEnumBySlug
|
||||
.transform((slug) => serviceSuggestionTypeSlugToId(slug))
|
||||
.optional(),
|
||||
status: serviceSuggestionStatusesZodEnumBySlug.or(z.literal('all')).default('pending'),
|
||||
type: serviceSuggestionTypesZodEnumBySlug.or(z.literal('all')).optional(),
|
||||
'sort-by': z
|
||||
.enum(['service', 'status', 'type', 'user', 'createdAt', 'messageCount'])
|
||||
.default('createdAt'),
|
||||
@@ -51,6 +47,11 @@ const { data: filters } = zodParseQueryParamsStoringErrors(
|
||||
Astro
|
||||
)
|
||||
|
||||
const statusFilter = filters.status === 'all' ? undefined : serviceSuggestionStatusSlugToId(filters.status)
|
||||
|
||||
const typeFilter =
|
||||
!filters.type || filters.type === 'all' ? undefined : serviceSuggestionTypeSlugToId(filters.type)
|
||||
|
||||
let prismaOrderBy: Prisma.ServiceSuggestionOrderByWithRelationInput = { createdAt: 'desc' }
|
||||
if (filters['sort-by'] === 'createdAt') {
|
||||
prismaOrderBy = { createdAt: filters['sort-order'] }
|
||||
@@ -67,8 +68,8 @@ let suggestions = await prisma.serviceSuggestion.findMany({
|
||||
],
|
||||
}
|
||||
: {}),
|
||||
status: filters.status,
|
||||
type: filters.type,
|
||||
status: statusFilter,
|
||||
type: typeFilter,
|
||||
},
|
||||
orderBy: prismaOrderBy,
|
||||
select: {
|
||||
@@ -198,10 +199,10 @@ const makeSortUrl = (slug: string) => {
|
||||
id="status-filter"
|
||||
class="mt-1 w-full rounded-md border border-zinc-700 bg-zinc-900 px-3 py-2 text-sm text-zinc-200 focus:border-blue-500 focus:ring-blue-500 focus:outline-none"
|
||||
>
|
||||
<option value="">All Statuses</option>
|
||||
<option value="all" selected={filters.status === 'all'}>All Statuses</option>
|
||||
{
|
||||
serviceSuggestionStatuses.map((status) => (
|
||||
<option value={status.slug} selected={filters.status === status.value}>
|
||||
<option value={status.slug} selected={filters.status === status.slug}>
|
||||
{status.label}
|
||||
</option>
|
||||
))
|
||||
@@ -215,10 +216,10 @@ const makeSortUrl = (slug: string) => {
|
||||
id="type-filter"
|
||||
class="mt-1 w-full rounded-md border border-zinc-700 bg-zinc-900 px-3 py-2 text-sm text-zinc-200 focus:border-blue-500 focus:ring-blue-500 focus:outline-none"
|
||||
>
|
||||
<option value="">All Types</option>
|
||||
<option value="all" selected={!filters.type || filters.type === 'all'}>All Types</option>
|
||||
{
|
||||
serviceSuggestionTypes.map((type) => (
|
||||
<option value={type.slug} selected={filters.type === type.value}>
|
||||
<option value={type.slug} selected={filters.type === type.slug}>
|
||||
{type.label}
|
||||
</option>
|
||||
))
|
||||
|
||||
Reference in New Issue
Block a user