- {onboardingFormData.orgProfile.org_google_maps_link && (
-
-
+ {/* Map Section */}
+ {orgProfile.org_google_maps_link && (
+
+ )}
- {/* Social Media Section */}
-
-
- Follow Us
-
-
-
-
-
-
-
-
+ {/* Social Media Section */}
+
+
+ Connect With Us
+
+
+
+
+
+
+
+
);
}
diff --git a/Frontend/src/components/ui/button.js b/Frontend/src/components/ui/button.js
new file mode 100644
index 0000000..fdcafef
--- /dev/null
+++ b/Frontend/src/components/ui/button.js
@@ -0,0 +1,113 @@
+// components/ui/button.jsx
+import { Link } from 'react-router-dom';
+
+export function Button({
+ className = '',
+ variant = 'default',
+ size = 'default',
+ isLoading = false,
+ to = null, // for React Router navigation
+ href = null, // for external links
+ disabled = false,
+ children,
+ ...props
+}) {
+ const baseStyles = 'inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-teal-500 disabled:pointer-events-none disabled:opacity-50';
+
+ const variants = {
+ default: 'bg-teal-600 text-white hover:bg-teal-700',
+ destructive: 'bg-red-500 text-white hover:bg-red-600',
+ outline: 'border border-gray-200 bg-white hover:bg-gray-50 text-gray-900',
+ secondary: 'bg-gray-100 text-gray-900 hover:bg-gray-200',
+ ghost: 'hover:bg-gray-100 text-gray-600 hover:text-gray-900',
+ link: 'text-teal-600 hover:text-teal-700 p-0 h-auto underline-offset-4 hover:underline bg-transparent',
+ info: "bg-teal-950/20 text-white text-xl hover:bg-teal-950/20 cursor-default" // New variant
+
+ };
+
+ const sizes = {
+ default: 'h-9 px-4 py-2 text-sm',
+ sm: 'h-8 px-3 text-xs',
+ lg: 'h-10 px-8 text-base',
+ icon: 'h-9 w-9'
+ };
+
+ const variantStyles = variants[variant] || variants.default;
+ const sizeStyles = variant === 'link' ? '' : (sizes[size] || sizes.default);
+ const loadingStyles = isLoading ? 'cursor-not-allowed' : '';
+ const combinedClassName = `${baseStyles} ${variantStyles} ${sizeStyles} ${loadingStyles} ${className}`;
+
+ // If 'to' prop is provided, use React Router's Link
+ if (to) {
+ return (
+
+ {children}
+
+ );
+ }
+
+ // If 'href' prop is provided, use regular anchor tag
+ if (href) {
+ return (
+
+ {children}
+
+ );
+ }
+
+ // Default to button
+ return (
+
+ );
+}
+
+export function IconButton({
+ className = '',
+ variant = 'default',
+ children,
+ ...props
+}) {
+ return (
+
+ );
+}
\ No newline at end of file
diff --git a/Frontend/src/components/ui/card.js b/Frontend/src/components/ui/card.js
index 5e72e91..1da0304 100644
--- a/Frontend/src/components/ui/card.js
+++ b/Frontend/src/components/ui/card.js
@@ -1,6 +1,14 @@
export function Card({ className, children }) {
return
{children}
;
}
+
+export function VolunteerMainCard({ className, children }) {
+ return (
+
+ {children}
+
+ );
+}
export function CardHeader({ className, children }) {
return
{children}
;
@@ -13,3 +21,7 @@ export function CardTitle({ className, children }) {
export function CardContent({ className, children }) {
return
{children}
;
}
+
+export function CardDescription({ className, children }) {
+ return
{children}
;
+}
diff --git a/Frontend/src/components/utils/translationConstants.js b/Frontend/src/components/utils/translationConstants.js
index aea7d62..50cc299 100644
--- a/Frontend/src/components/utils/translationConstants.js
+++ b/Frontend/src/components/utils/translationConstants.js
@@ -6,10 +6,10 @@ export const STATIC_PHRASES = {
'Home': 'Home',
'Find GOs': 'Find GOs',
'Establishment Guide': 'Establishment Guide',
- 'Volunteer': 'Volunteer',
- 'About': 'About',
+ 'About Us': 'About Us',
'Welcome!': 'Welcome!',
'Log out': 'Log out',
+ 'Founder Resources': 'Founder Resources',
// Main content
'Discover Kenyan Organizations': 'Discover Kenyan Organizations',
@@ -67,9 +67,7 @@ export const STATIC_PHRASES = {
// Contact Section
'Contact Information': 'Contact Information',
'Contact Us': 'Contact Us',
- 'Email': 'Email',
'Phone': 'Phone',
- 'Address': 'Address',
'Website': 'Website',
'Beneficiaries': 'Beneficiaries',
@@ -89,6 +87,8 @@ export const STATIC_PHRASES = {
'Volunteer': 'Volunteer',
'Admin': 'Admin',
'Your Skills': 'Your Skills',
+ 'Skills': 'Skills',
+ 'Matches': 'Matches',
// Volunteer 'how to increase matches' section
"Here are some steps to increase your matches": "Here are some steps to increase your matches",
@@ -103,14 +103,15 @@ export const STATIC_PHRASES = {
sw: {
// Navigation
- 'Home': 'Nyumbani',
- 'Find GOs': 'Tafuta Mashirika',
+ 'Home': 'Ukurasa Mkuu',
+ 'Find CBOs': 'Tafuta Mashirika',
'Establishment Guide': 'Mwongozo wa Uanzishaji',
'Volunteer': 'Kujitolea',
- 'About': 'Kuhusu',
+ 'About Us': 'Kutuhusu',
'Welcome!': 'Karibu!',
'Log out': 'Toka',
'View Profile': 'Tazama Profaili',
+ 'Founder Resources': 'Rasilimali za Mwanzilishi',
// Main content
'Discover Kenyan Organizations': 'Gundua Mashirika ya Kenya',
@@ -125,6 +126,9 @@ export const STATIC_PHRASES = {
'Skills Needed': 'Ujuzi Unahitajika',
'organization(s)': ' Mashirika',
'Loading organizations...': 'Kupakia mashirika...',
+ 'Your Skills': 'Ujuzi Wako',
+ 'Skills': 'Ujuzi',
+ 'Matches': 'Mashirika yanayolingana',
// Auth pages
'Login': 'Ingia',
@@ -190,7 +194,6 @@ export const STATIC_PHRASES = {
// Volunteer Dashboard
'Matched Organizations': 'Mashirika Yanayolingana na ujuzi wako',
'Volunteer Dashboard': 'Dash bodi ya Kujitolea',
- 'Volunteer': 'Anaye Jitolea',
'Admin': 'Msimamizi',
'Your Skills': 'Ujuzi Wako',
diff --git a/Frontend/src/contexts/TranslationProvider.js b/Frontend/src/contexts/TranslationProvider.js
index d8c470f..3d0a30a 100644
--- a/Frontend/src/contexts/TranslationProvider.js
+++ b/Frontend/src/contexts/TranslationProvider.js
@@ -36,6 +36,7 @@ export function DynamicTranslate({ children }) {
// Skip translation for non-string content
if (!children || typeof children !== 'string') {
+ console.warn('DynamicTranslate component requires a string child', children);
return;
}
@@ -93,7 +94,7 @@ export function LanguageSwitch() {
};
return (
-
+