aboutsummaryrefslogtreecommitdiff
path: root/apps/website/config.ts
blob: 81f939ee4bea1e1dd21018a28ab80b167a1ac766 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import type { Config, NavbarDropdown, Project } from '@webtypes/Config';

export const configConst = {
	projects: getProjects(),
	logos: ['oneconfig.minimal', 'polyfrost.full', 'polyfrost.minimal', 'polyfrost.minimal_bg'],
	socials: {
		youtube: 'https://youtube.com/@Polyfrost',
		discord: '/discord',
		github: 'https://github.com/Polyfrost',
		modrinth: {
			id: 'polyfrost',
			type: 'organization',
		},
		skyclient: 'https://skyclient.co',
	},
	navbar: {
		left: [
			{
				logo: ['polyfrost.full', -1],
				path: '/',
			},
		],
		right: [
			{
				text: 'Home',
				path: '/',
			},
			{
				text: 'Mods',
				path: '/mods',
			},
			{
				text: 'Projects',
				dropdown: getProjects().map((project) => {
					if (project.hasPage)
						(project as any).path = `/projects/${project.name.toLowerCase()}`;

					return project;
				}) as unknown as NavbarDropdown[],
			},
			{
				text: 'About Us',
				path: '/about',
			},
		],
	},
	footer: [
		{
			header: 'Products',
			links: getProjects().filter(project => project.hasPage === true).map(project => ({
				text: project.name,
				url: `/projects/${project.name.toLowerCase()}`,
			})).concat([
				{
					text: 'Mods',
					url: '/mods',
				},
			]),
		},
		{
			header: 'Organization',
			links: [
				{
					text: 'About us',
					url: '/about',
				},
				{
					text: 'Branding',
					url: '/branding',
				},
				{
					text: 'Contact us',
					url: '/contact',
				},
				{
					text: 'Documentation',
					url: 'https://docs.polyfrost.org',
				},
				{
					text: 'Open source',
					url: '/oss',
				},
			],
		},
		{
			header: 'Legal',
			links: [
				{
					text: 'Terms of service',
					url: '/legal/tos',
				},
				{
					text: 'Privacy policy',
					url: '/legal/privacy',
				},
			],
		},
	],
} satisfies Config;

function getProjects(): Project[] {
	return [
		{
			name: 'OneConfig',
			description: 'The next-generation config library for Forge and Fabric',
			logo: 'oneconfig.minimal',
			hasPage: true,
		},
		{
			name: 'OneLauncher',
			description: 'The next-generation launcher for Forge and Fabric',
			logo: 'polyfrost.minimal',
			tag: 'SOON',
		},
	];
}

// -------------------- NO TOUCH --------------------- //
export default configConst as unknown as Config;