Compare commits
2 Commits
release-61
...
release-63
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b8b2dee4a4 | ||
|
|
eb0af871e1 |
6
web/public/notification-icon.svg
Normal file
6
web/public/notification-icon.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="#3BDB78" viewBox="0 0 32 32" height="32" width="32">
|
||||
<title>KYCnot.me logo</title>
|
||||
<path fill-rule="evenodd"
|
||||
d="M30 26a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4h20a4 4 0 0 1 4 4v20ZM7 6a1 1 0 0 0-1 1v18c0 .6.4 1 1 1h2c.6 0 1-.4 1-1v-6c0-.6.4-1 1-1h7v-3c0-.6-.4-1-1-1h-6a1 1 0 0 1-1-1V7c0-.6-.4-1-1-1H7Zm15 16v3c0 .6.4 1 1 1h2c.6 0 1-.4 1-1v-2c0-.6-.4-1-1-1h-3Zm-4-4v3c0 .6.4 1 1 1h3v-3c0-.6-.4-1-1-1h-3Zm1-12a1 1 0 0 0-1 1v3c0 .6.4 1 1 1h3c.6 0 1-.4 1-1V7c0-.6-.4-1-1-1h-3Z"
|
||||
clip-rule="evenodd" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 566 B |
@@ -14,7 +14,7 @@ export function makeNotificationOptions(
|
||||
body: 'You have a new notification',
|
||||
lang: 'en-US',
|
||||
icon: '/favicon.svg',
|
||||
badge: '/favicon.svg',
|
||||
badge: '/notification-icon.svg',
|
||||
requireInteraction: false,
|
||||
silent: false,
|
||||
actions: options.removeActions
|
||||
|
||||
@@ -333,6 +333,8 @@ const [categories, [services, totalServices], countCommunityOnly, attributes] =
|
||||
where,
|
||||
select: {
|
||||
id: true,
|
||||
serviceVisibility: true,
|
||||
verificationStatus: true,
|
||||
...(Object.fromEntries(sortOptions.map((option) => [option.orderBy.key, true])) as Record<
|
||||
(typeof sortOptions)[number]['orderBy']['key'],
|
||||
true
|
||||
@@ -354,10 +356,18 @@ const [categories, [services, totalServices], countCommunityOnly, attributes] =
|
||||
sortBy(unsortedServices, 'id'),
|
||||
[
|
||||
...(filters.q ? (['similarityScore'] as const) : ([] as const)),
|
||||
(service) => (service.verificationStatus === 'VERIFICATION_FAILED' ? 1 : 0),
|
||||
(service) => (service.serviceVisibility === 'ARCHIVED' ? 1 : 0),
|
||||
selectedSort.orderBy.key,
|
||||
() => rng(),
|
||||
],
|
||||
[...(filters.q ? (['desc'] as const) : ([] as const)), selectedSort.orderBy.direction, 'asc']
|
||||
[
|
||||
...(filters.q ? (['desc'] as const) : ([] as const)),
|
||||
'asc',
|
||||
'asc',
|
||||
selectedSort.orderBy.direction,
|
||||
'asc',
|
||||
]
|
||||
).slice((filters.page - 1) * PAGE_SIZE, filters.page * PAGE_SIZE)
|
||||
|
||||
const unsortedServicesWithInfoMissingSimilarityScore = await prisma.service.findMany({
|
||||
@@ -410,11 +420,19 @@ const [categories, [services, totalServices], countCommunityOnly, attributes] =
|
||||
unsortedServicesWithInfo,
|
||||
[
|
||||
...(filters.q ? (['similarityScore'] as const) : ([] as const)),
|
||||
(service) => (service.verificationStatus === 'VERIFICATION_FAILED' ? 1 : 0),
|
||||
(service) => (service.serviceVisibility === 'ARCHIVED' ? 1 : 0),
|
||||
selectedSort.orderBy.key,
|
||||
// Now we can shuffle indeternimistically, because the pagination was already applied
|
||||
() => Math.random(),
|
||||
],
|
||||
[...(filters.q ? (['desc'] as const) : ([] as const)), selectedSort.orderBy.direction, 'asc']
|
||||
[
|
||||
...(filters.q ? (['desc'] as const) : ([] as const)),
|
||||
'asc',
|
||||
'asc',
|
||||
selectedSort.orderBy.direction,
|
||||
'asc',
|
||||
]
|
||||
)
|
||||
|
||||
return [sortedServicesWithInfo, totalServices] as const
|
||||
|
||||
Reference in New Issue
Block a user