Enhance application structure: Add runtime configuration for environment variables, integrate new dependencies for Cloudinary and UI components, and refactor member management features including improved forms and member dashboard. Update styles and layout for better user experience.

This commit is contained in:
Jennie Robinson Faber 2025-08-27 16:49:51 +01:00
parent 6e7e27ac4e
commit e4a0a9ab0f
61 changed files with 7902 additions and 950 deletions

54
app/config/circles.js Normal file
View file

@ -0,0 +1,54 @@
// Central configuration for Ghost Guild Circles
export const CIRCLES = {
COMMUNITY: {
value: 'community',
label: 'Community Circle',
description: 'For individuals interested in learning about cooperative principles',
features: [
'Game workers curious about co-ops, researchers, industry allies',
'People exploring alternative work models',
'Access to community forums and resources'
]
},
FOUNDER: {
value: 'founder',
label: 'Founder Circle',
description: 'For those actively establishing or growing their cooperative studio',
features: [
'Has two tracks: Peer Accelerator Prep Track and Indie Track',
'Teams working toward PA application',
'Early-stage co-op studios',
'Studios transitioning to co-op model'
]
},
PRACTITIONER: {
value: 'practitioner',
label: 'Practitioner Circle',
description: 'For Peer Accelerator alumni and experienced studio leaders',
features: [
'Those implementing cooperative models',
'Industry mentors and advisors',
'Expert-level workshops and mentorship opportunities'
]
}
};
// Get all circle options as an array (useful for forms)
export const getCircleOptions = () => {
return Object.values(CIRCLES);
};
// Get valid circle values for validation
export const getValidCircleValues = () => {
return Object.values(CIRCLES).map(circle => circle.value);
};
// Get circle by value
export const getCircleByValue = (value) => {
return Object.values(CIRCLES).find(circle => circle.value === value);
};
// Check if a circle value is valid
export const isValidCircleValue = (value) => {
return getValidCircleValues().includes(value);
};