alpha
Login
or
Join now
nandi.uk
/
semble
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
This repository has no description
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
Merge branch 'development'
author
pdelfan
date
4 months ago
(Mar 2, 2026, 3:19 PM -0800)
commit
68b31e9a
68b31e9ac6dcd92504749013a70e85e4ff4a481e
parent
28665408
2866540810e2f04a59386fecdc4a731dde698cdb
+28
-12
2 changed files
Expand all
Collapse all
Unified
Split
src
webapp
features
profile
components
profileHeader
ProfileHeader.tsx
Skeleton.ProfileHeader.tsx
+22
-10
src/webapp/features/profile/components/profileHeader/ProfileHeader.tsx
View file
Reviewed
···
17
17
import { getProfile } from '../../lib/dal.server';
18
18
import { Fragment, Suspense } from 'react';
19
19
import RichTextRenderer from '@/components/contentDisplay/richTextRenderer/RichTextRenderer';
20
20
-
import { getServerFeatureFlags } from '@/lib/serverFeatureFlags';
21
20
import { verifySessionOnServer } from '@/lib/auth/dal.server';
22
21
import FollowButton from '@/features/follows/components/followButton/FollowButton';
23
22
import ProfileFollowStats from '../profileFollowStats/ProfileFollowStats';
24
23
import FollowStatsSkeleton from '../profileFollowStats/Skeleton.FollowStats';
24
24
+
import Link from 'next/link';
25
25
+
import { IoSearch } from 'react-icons/io5';
25
26
26
27
interface Props {
27
28
handle: string;
···
30
31
export default async function ProfileHeader(props: Props) {
31
32
const session = await verifySessionOnServer();
32
33
const profile = await getProfile(props.handle);
33
33
-
const featureFlags = await getServerFeatureFlags();
34
34
35
35
return (
36
36
<Fragment>
···
60
60
border: '2.5px solid var(--mantine-color-body)',
61
61
}}
62
62
/>
63
63
-
{props.handle !== session?.handle && (
64
64
-
<FollowButton
65
65
-
targetId={profile.id}
66
66
-
targetType="USER"
67
67
-
targetHandle={props.handle}
68
68
-
initialIsFollowing={profile.isFollowing}
69
69
-
/>
70
70
-
)}
63
63
+
<Group gap={'xs'}>
64
64
+
{props.handle !== session?.handle && (
65
65
+
<FollowButton
66
66
+
targetId={profile.id}
67
67
+
targetType="USER"
68
68
+
targetHandle={props.handle}
69
69
+
initialIsFollowing={profile.isFollowing}
70
70
+
/>
71
71
+
)}
72
72
+
<ActionIcon
73
73
+
component={Link}
74
74
+
href={`/search/cards?handle=${props.handle}`}
75
75
+
variant="light"
76
76
+
color="gray"
77
77
+
size={'lg'}
78
78
+
radius={'xl'}
79
79
+
>
80
80
+
<IoSearch />
81
81
+
</ActionIcon>
82
82
+
</Group>
71
83
</Group>
72
84
73
85
{/* profile info */}
+6
-2
src/webapp/features/profile/components/profileHeader/Skeleton.ProfileHeader.tsx
View file
Reviewed
···
22
22
}}
23
23
/>
24
24
25
25
-
{/* Follow button skeleton */}
26
26
-
<Skeleton w={100} h={36} radius={'xl'} mt={4} />
25
25
+
<Group gap={'xs'}>
26
26
+
{/* Search button */}
27
27
+
<Skeleton w={32} h={32} radius={'xl'} mt={4} />
28
28
+
{/* Follow button skeleton */}
29
29
+
<Skeleton w={100} h={36} radius={'xl'} mt={4} />
30
30
+
</Group>
27
31
</Group>
28
32
29
33
{/* Profile info */}