From 1a6eb7e2ff0bf551e1560c67170e90fa8ec2a8ea Mon Sep 17 00:00:00 2001 From: Joe Carstairs <118172583+jcarstairs-scottlogic@users.noreply.github.com> Date: Thu, 25 Jan 2024 16:59:42 +0000 Subject: 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
* 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 --- src/enums/MembershipType.ts | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/enums/MembershipType.ts (limited to 'src/enums/MembershipType.ts') 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; -- cgit v1.2.3