summaryrefslogtreecommitdiff
path: root/src/enums
diff options
context:
space:
mode:
authorJoe Carstairs <65492573+joeacarstairs@users.noreply.github.com>2024-01-25 17:02:50 +0000
committerGitHub <noreply@github.com>2024-01-25 17:02:50 +0000
commit64c5ee53a0d158b38caff3285dac008826d7ae88 (patch)
tree7542f8c5b82b3327d82cc5defe2e84f86d6f11e7 /src/enums
parent7140956da0820d4b818119eff7dfc72345f3328e (diff)
Update from staging (#70)
* 33 / Pay annual subscription by PayPal (#68) * Refactors paypal-buttons -> paypal-product-buttons WebComponent * Pulls out address to data file * Defines annual subscription prices data hash * Styles paypal-product-buttons * Styles <address> * Details have cursor:pointer on the summary * Moves Jyne section to separate page * Rewrites payment options using details components * Reworks translation typing * Defines MembershipType enum * Adds translations for MembershipType enum * Can pay annual subs by PayPal * Styles tables better * Replaces a few straggler --margins with --spacing (#67) --------- Co-authored-by: Joe Carstairs <118172583+jcarstairs-scottlogic@users.noreply.github.com>
Diffstat (limited to 'src/enums')
-rw-r--r--src/enums/MembershipType.ts42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/enums/MembershipType.ts b/src/enums/MembershipType.ts
new file mode 100644
index 0000000..e153755
--- /dev/null
+++ b/src/enums/MembershipType.ts
@@ -0,0 +1,42 @@
+enum MembershipType {
+ IndividualUk,
+ IndividualNonUk,
+ InstitutionUk,
+}
+
+export type MembershipTypeSnakeCase = 'individual-uk' | 'individual-non-uk' | 'institution-uk';
+
+const allMembershipTypesSnakeCaseHash: { [key in MembershipTypeSnakeCase]: null } = {
+ 'individual-uk': null,
+ 'individual-non-uk': null,
+ 'institution-uk': null,
+};
+export const allMembershipTypesSnakeCase = Object.keys(
+ allMembershipTypesSnakeCaseHash
+) as MembershipTypeSnakeCase[];
+
+export function membershipTypeToSnakeCase(membershipType: MembershipType): MembershipTypeSnakeCase {
+ switch (membershipType) {
+ case MembershipType.IndividualUk:
+ return 'individual-uk';
+ case MembershipType.IndividualNonUk:
+ return 'individual-non-uk';
+ case MembershipType.InstitutionUk:
+ return 'institution-uk';
+ }
+}
+
+export function snakeCaseToMembershipType(membershipType: MembershipTypeSnakeCase): MembershipType {
+ switch (membershipType) {
+ case 'individual-uk':
+ return MembershipType.IndividualUk;
+ case 'individual-non-uk':
+ return MembershipType.IndividualNonUk;
+ case 'institution-uk':
+ return MembershipType.InstitutionUk;
+ }
+}
+
+export const allMembershipTypes = allMembershipTypesSnakeCase.map(snakeCaseToMembershipType);
+
+export default MembershipType;