Release 202507030838
This commit is contained in:
@@ -185,6 +185,18 @@ export function makeNotificationTitle(
|
||||
serviceVerificationStatusChangesById[notification.aboutServiceVerificationStatusChange]
|
||||
return `${serviceName} ${statusChange.notificationTitle}`
|
||||
}
|
||||
case 'ACCOUNT_DELETION_WARNING_30_DAYS': {
|
||||
return 'Account deletion warning - 30 days remaining'
|
||||
}
|
||||
case 'ACCOUNT_DELETION_WARNING_15_DAYS': {
|
||||
return 'Account deletion warning - 15 days remaining'
|
||||
}
|
||||
case 'ACCOUNT_DELETION_WARNING_5_DAYS': {
|
||||
return 'Account deletion warning - 5 days remaining'
|
||||
}
|
||||
case 'ACCOUNT_DELETION_WARNING_1_DAY': {
|
||||
return 'Account deletion warning - 1 day remaining'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -251,6 +263,12 @@ export function makeNotificationContent(
|
||||
if (!notification.aboutEvent) return null
|
||||
return notification.aboutEvent.title
|
||||
}
|
||||
case 'ACCOUNT_DELETION_WARNING_30_DAYS':
|
||||
case 'ACCOUNT_DELETION_WARNING_15_DAYS':
|
||||
case 'ACCOUNT_DELETION_WARNING_5_DAYS':
|
||||
case 'ACCOUNT_DELETION_WARNING_1_DAY': {
|
||||
return 'Your account will be deleted due to inactivity. Log in and perform any activity (comment, vote, or create a suggestion) to prevent deletion.'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -411,6 +429,19 @@ export function makeNotificationActions(
|
||||
},
|
||||
]
|
||||
}
|
||||
case 'ACCOUNT_DELETION_WARNING_30_DAYS':
|
||||
case 'ACCOUNT_DELETION_WARNING_15_DAYS':
|
||||
case 'ACCOUNT_DELETION_WARNING_5_DAYS':
|
||||
case 'ACCOUNT_DELETION_WARNING_1_DAY': {
|
||||
return [
|
||||
{
|
||||
action: 'login',
|
||||
title: 'Login & Stay Active',
|
||||
...iconNameAndUrl('ri:login-box-line'),
|
||||
url: `${origin}/login`,
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,10 @@ const knownPlurals = {
|
||||
singular: 'Request',
|
||||
plural: 'Requests',
|
||||
},
|
||||
day: {
|
||||
singular: 'Day',
|
||||
plural: 'Days',
|
||||
},
|
||||
something: {
|
||||
singular: 'Something',
|
||||
plural: 'Somethings',
|
||||
|
||||
@@ -20,7 +20,7 @@ export const areSameNormalized = (str1: string, str2: string): boolean => {
|
||||
return normalize(str1) === normalize(str2)
|
||||
}
|
||||
|
||||
export type TransformCaseType = 'lower' | 'original' | 'sentence' | 'title' | 'upper'
|
||||
export type TransformCaseType = 'first-upper' | 'lower' | 'original' | 'sentence' | 'title' | 'upper'
|
||||
|
||||
/**
|
||||
* Transform a string to a different case.
|
||||
@@ -31,6 +31,7 @@ export type TransformCaseType = 'lower' | 'original' | 'sentence' | 'title' | 'u
|
||||
* transformCase('hello WORLD', 'sentence') // 'Hello world'
|
||||
* transformCase('hello WORLD', 'title') // 'Hello World'
|
||||
* transformCase('hello WORLD', 'original') // 'hello WORLD'
|
||||
* transformCase('Hello WORLD', 'first-upper') // 'Hello WORLD'
|
||||
*/
|
||||
export const transformCase = <T extends string, C extends TransformCaseType>(
|
||||
str: T,
|
||||
@@ -43,7 +44,9 @@ export const transformCase = <T extends string, C extends TransformCaseType>(
|
||||
? Capitalize<Lowercase<T>>
|
||||
: C extends 'title'
|
||||
? Capitalize<Lowercase<T>>
|
||||
: T => {
|
||||
: C extends 'first-upper'
|
||||
? Capitalize<T>
|
||||
: T => {
|
||||
switch (caseType) {
|
||||
case 'lower':
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
||||
@@ -54,6 +57,9 @@ export const transformCase = <T extends string, C extends TransformCaseType>(
|
||||
case 'sentence':
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
||||
return (str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()) as any
|
||||
case 'first-upper':
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
||||
return (str.charAt(0).toUpperCase() + str.slice(1)) as any
|
||||
case 'title':
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
||||
return str
|
||||
|
||||
Reference in New Issue
Block a user