updateActiveTab(1)} />
- { console.log(v); setText(v) }} containerStyle='tw-h-full' inputStyle='tw-h-full tw-border-t-0 tw-rounded-tl-none' />
+ { console.log(v); setText(v) }} containerStyle='tw-h-full' inputStyle='tw-h-full tw-border-t-0 tw-rounded-tl-none' />
{item.layer?.itemType.offers_and_needs &&
<>
diff --git a/src/Components/Profile/ProfileSubHeader.tsx b/src/Components/Profile/ProfileSubHeader.tsx
new file mode 100644
index 00000000..67492365
--- /dev/null
+++ b/src/Components/Profile/ProfileSubHeader.tsx
@@ -0,0 +1,37 @@
+import SocialShareBar from './SocialShareBar';
+
+
+const flags = {
+ de: (
+
+ ),
+ at: (
+
+ )
+};
+
+const statusMapping = {
+ 'in_planning': 'in Planung',
+ 'paused': 'pausiert',
+};
+
+const SubHeader = ({ type, status, url, title }) => (
+
+
+ {type}{(status && status !== 'active') ? ` (${statusMapping[status]})` : ''}
+
+
+
+
+
+);
+
+export default SubHeader;
\ No newline at end of file
diff --git a/src/Components/Profile/RelationCard.tsx b/src/Components/Profile/RelationCard.tsx
new file mode 100644
index 00000000..4d153188
--- /dev/null
+++ b/src/Components/Profile/RelationCard.tsx
@@ -0,0 +1,16 @@
+
+const RelationCard = ({ title, description, imageSrc }) => (
+
+ {imageSrc && (
+
+

+
+ )}
+
+
{title}
+
{description}
+
+
+);
+
+export default RelationCard;
\ No newline at end of file
diff --git a/src/Components/Profile/SocialShareBar.tsx b/src/Components/Profile/SocialShareBar.tsx
new file mode 100644
index 00000000..e9fbecf6
--- /dev/null
+++ b/src/Components/Profile/SocialShareBar.tsx
@@ -0,0 +1,18 @@
+import SocialShareButton from './SocialShareButton';
+
+const SocialShareBar = ({url, title, platforms = ['facebook', 'twitter', 'linkedin', 'xing', 'email']}) => {
+ return (
+
+ {platforms.map((platform) => (
+
+ ))}
+
+ );
+};
+
+export default SocialShareBar;
\ No newline at end of file
diff --git a/src/Components/Profile/SocialShareButton.tsx b/src/Components/Profile/SocialShareButton.tsx
new file mode 100644
index 00000000..5053369f
--- /dev/null
+++ b/src/Components/Profile/SocialShareButton.tsx
@@ -0,0 +1,80 @@
+import * as React from 'react';
+
+const platformConfigs = {
+ facebook: {
+ shareUrl: 'https://www.facebook.com/sharer/sharer.php?u={url}',
+ icon: (
+
+ ),
+ bgColor: '#3b5998'
+ },
+ twitter: {
+ shareUrl: 'https://twitter.com/intent/tweet?text={title}:%20{url}',
+ icon: (
+
+ ),
+ bgColor: '#55acee'
+ },
+ linkedin: {
+ shareUrl: 'http://www.linkedin.com/shareArticle?mini=true&url={url}&title={title}',
+ icon: (
+
+ ),
+ bgColor: '#4875b4'
+ },
+ xing: {
+ shareUrl: 'https://www.xing-share.com/app/user?op=share;sc_p=xing-share;url={url}',
+ icon: (
+
+ ),
+ bgColor: '#026466'
+ },
+ email: {
+ shareUrl: 'mailto:?subject={title}&body={url}',
+ icon: (
+
+ ),
+ bgColor: '#444444'
+ }
+};
+
+const SocialShareButton = ({ platform, url, title }) => {
+ const config = platformConfigs[platform];
+
+ if (!config) {
+ return null;
+ }
+
+ const { shareUrl, icon, bgColor } = config;
+ const finalShareUrl = shareUrl
+ .replace('{url}', encodeURIComponent(url))
+ .replace('{title}', encodeURIComponent(title));
+
+ return (
+
+ {React.cloneElement(icon, { className: 'tw-w-4 tw-h-4 tw-fill-current' })}
+
+ );
+};
+
+export default SocialShareButton;
\ No newline at end of file
diff --git a/src/Components/README.md b/src/Components/README.md
new file mode 100644
index 00000000..2d9dbed2
--- /dev/null
+++ b/src/Components/README.md
@@ -0,0 +1,9 @@
+**AppShell** provides componentes to structure the overall layout of a singlepage application including Navbar and Sidebar
+
+**Auth** provides the UI components for Login, Signup, Password Reset and the useAuth hook, which handls all the authentification logic and provides the user context
+
+**Gaming** provides components for gamification
+
+**Input**
+
+**Map**
\ No newline at end of file
diff --git a/src/Components/Templates/MapOverlayPage.tsx b/src/Components/Templates/MapOverlayPage.tsx
index fd84d9ba..fccab0fb 100644
--- a/src/Components/Templates/MapOverlayPage.tsx
+++ b/src/Components/Templates/MapOverlayPage.tsx
@@ -39,5 +39,4 @@ export function MapOverlayPage({ children, className, backdrop, card = true }: {