diff options
| author | Joe Carstairs <118172583+jcarstairs-scottlogic@users.noreply.github.com> | 2024-01-25 16:59:42 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-25 16:59:42 +0000 |
| commit | 1a6eb7e2ff0bf551e1560c67170e90fa8ec2a8ea (patch) | |
| tree | 53f73dcca5693e656d50fac965955560a513a233 /src/enums | |
| parent | 83c3460191a2089b56b091a7f4e09f39ac636e1e (diff) | |
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
Diffstat (limited to 'src/enums')
| -rw-r--r-- | src/enums/MembershipType.ts | 42 |
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; |
