Skip to content

Commit e44af78

Browse files
committed
feat(subpage): add new button type and base settings schema
1 parent 4a0006b commit e44af78

File tree

11 files changed

+41
-23
lines changed

11 files changed

+41
-23
lines changed

libs/subscription-page/constants/button-types.constant.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
export const BUTTON_TYPES = {
22
EXTERNAL: 'external',
33
SUBSCRIPTION_LINK: 'subscriptionLink',
4+
COPY_BUTTON: 'copyButton',
45
} as const;
56

67
export type TButtonType = (typeof BUTTON_TYPES)[keyof typeof BUTTON_TYPES];

libs/subscription-page/constants/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@ export * from './base-translations.constant';
33
export * from './button-types.constant';
44
export * from './language-codes.constant';
55
export * from './platform-types.constant';
6+
export * from './subpage-config.constant';
67
export * from './template-keys.constant';
78
export * from './ui-blocks-variants.constant';
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export const SUBPAGE_DEFAULT_CONFIG_NAME = 'Default';
2+
export const SUBPAGE_DEFAULT_CONFIG_UUID = '00000000-0000-0000-0000-000000000000';
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
export const SUBSCRIPTION_PAGE_TEMPLATE_KEYS = ['USERNAME', 'SUBSCRIPTION_LINK'] as const;
22
export type TSubscriptionPageTemplateKey = (typeof SUBSCRIPTION_PAGE_TEMPLATE_KEYS)[number];
3-

libs/subscription-page/models/subscription-page-config.schema.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,12 +109,25 @@ const SubscriptionPageTranslateKeysSchema = z.object({
109109
indefinitely: LocalizedTextSchema,
110110
});
111111

112+
const BaseSettingsSchema = z
113+
.object({
114+
metaTitle: z.string().default('Remnawave Subscription Page'),
115+
metaDescription: z.string().default('Remnawave Subscription Page'),
116+
showConnectionKeys: z.boolean().default(false),
117+
})
118+
.default({
119+
metaTitle: 'Remnawave Subscription Page',
120+
metaDescription: 'Remnawave Subscription Page',
121+
showConnectionKeys: false,
122+
});
123+
112124
export const SubscriptionPageRawConfigSchema = z
113125
.object({
114126
version: z.nativeEnum(SUBSCRIPTION_PAGE_CONFIG_VERSION),
115127
locales: z.array(z.enum(LANGUAGE_CODES)).min(1, 'At least one locale must be specified'),
116128
brandingSettings: BrandingSettingsSchema,
117129
uiConfig: UiConfigSchema,
130+
baseSettings: BaseSettingsSchema,
118131
baseTranslations: SubscriptionPageTranslateKeysSchema,
119132
svgLibrary: SvgLibrarySchema,
120133
platforms: z.record(z.nativeEnum(SUBSCRIPTION_PAGE_CONFIG_PLATFORM_TYPES), PlatformSchema),

libs/subscription-page/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@remnawave/subscription-page-types",
3-
"version": "0.2.7",
3+
"version": "0.3.3",
44
"public": true,
55
"license": "AGPL-3.0-only",
66
"description": "A types library for Remnawave Subscription Page.",

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@remnawave/backend",
3-
"version": "2.4.2",
3+
"version": "2.4.3",
44
"description": "Remnawave Panel Backend",
55
"private": false,
66
"type": "commonjs",

prisma/seed/config.seed.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ import {
3030
TTgAuthSettings,
3131
} from '@libs/contracts/models';
3232
import { getRedisConnectionOptions } from '@common/utils';
33+
import { DEFAULT_SUBPAGE_CONFIG } from '@modules/subscription-page-configs/constants';
3334
import {
34-
DEFAULT_SUBPAGE_CONFIG_NAME,
35-
DEFAULT_SUBPAGE_CONFIG,
36-
DEFAULT_SUBPAGE_CONFIG_UUID,
37-
} from '@modules/subscription-page-configs/constants';
35+
SUBPAGE_DEFAULT_CONFIG_NAME,
36+
SUBPAGE_DEFAULT_CONFIG_UUID,
37+
} from '@libs/subscription-page/constants';
3838

3939
const hash = hasher({
4040
trim: true,
@@ -808,15 +808,15 @@ async function seedRemnawaveSettings() {
808808
async function seedSubscriptionPageConfig() {
809809
const existingConfig = await prisma.subscriptionPageConfig.findUnique({
810810
where: {
811-
uuid: DEFAULT_SUBPAGE_CONFIG_UUID,
811+
uuid: SUBPAGE_DEFAULT_CONFIG_UUID,
812812
},
813813
});
814814

815815
if (!existingConfig) {
816816
await prisma.subscriptionPageConfig.create({
817817
data: {
818-
uuid: DEFAULT_SUBPAGE_CONFIG_UUID,
819-
name: DEFAULT_SUBPAGE_CONFIG_NAME,
818+
uuid: SUBPAGE_DEFAULT_CONFIG_UUID,
819+
name: SUBPAGE_DEFAULT_CONFIG_NAME,
820820
config: DEFAULT_SUBPAGE_CONFIG,
821821
},
822822
});

src/modules/subscription-page-configs/constants/default-subpage-config.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
export const DEFAULT_SUBPAGE_CONFIG_NAME = 'Default';
2-
export const DEFAULT_SUBPAGE_CONFIG_UUID = '00000000-0000-0000-0000-000000000000';
3-
41
export const DEFAULT_SUBPAGE_CONFIG = {
52
version: '1',
63
locales: ['en', 'ru', 'zh', 'fa', 'fr'],
@@ -13,6 +10,11 @@ export const DEFAULT_SUBPAGE_CONFIG = {
1310
subscriptionInfoBlockType: 'expanded',
1411
installationGuidesBlockType: 'cards',
1512
},
13+
baseSettings: {
14+
metaTitle: 'Remnawave Subscription Page',
15+
metaDescription: 'Remnawave Subscription Page',
16+
showConnectionKeys: false,
17+
},
1618
baseTranslations: {
1719
installationGuideHeader: {
1820
en: 'Installation',

0 commit comments

Comments
 (0)