**Fixed different issues** : - Multiple CSS fixes: font-size, colors, margins, z-index ... - Fixed hover on contributor avatars - Added link to contributors in footer - Made the year in the footer dynamic (2023 --> 2024) - Added name of contributor in "Thank you" section of Contributor page - Added footer in small screens - Made Activity Log Responsive - Fixed bug in "saving issues to DB", title was null everywhere. I needed to implement an "upsert" behaviour to update the existing database on init **To be noted :** There is the following bug on production happening on mobile when you refresh a second time : <img width="1440" alt="Screenshot 2024-04-05 at 01 30 58" src="https://github.com/twentyhq/twenty/assets/102751374/b935b07a-63dc-463d-8dcb-070ad4ef6db0"> It seems to be related to the following issue on mdx : [https://github.com/hashicorp/next-mdx-remote/issues/350](https://github.com/hashicorp/next-mdx-remote/issues/350) I added the following code that fixed this bug for me in development (this needs to be tested in production) : ``` const serialized = await serialize(content, { mdxOptions: { development: process.env.NODE_ENV === 'development', } }) ``` --------- Co-authored-by: Ady Beraud <a.beraud96@gmail.com>
172 lines
4.3 KiB
TypeScript
172 lines
4.3 KiB
TypeScript
'use client';
|
|
|
|
import styled from '@emotion/styled';
|
|
import { usePathname } from 'next/navigation';
|
|
|
|
import {
|
|
DiscordIcon,
|
|
GithubIcon2,
|
|
LinkedInIcon,
|
|
XIcon,
|
|
} from '../icons/SvgIcons';
|
|
|
|
import { Logo } from './Logo';
|
|
|
|
const FooterContainer = styled.div`
|
|
padding: 64px 96px 64px 96px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
color: rgb(129, 129, 129);
|
|
gap: 32px;
|
|
@media (max-width: 809px) {
|
|
padding: 36px 24px;
|
|
}
|
|
`;
|
|
|
|
const LeftSideFooter = styled.div`
|
|
width: 36Opx;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 16px;
|
|
@media (max-width: 809px) {
|
|
display: none;
|
|
}
|
|
`;
|
|
|
|
const RightSideFooter = styled.div`
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 48px;
|
|
height: 146px;
|
|
@media (max-width: 809px) {
|
|
flex-direction: column;
|
|
height: fit-content;
|
|
}
|
|
`;
|
|
|
|
const RightSideFooterColumn = styled.div`
|
|
width: 160px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
`;
|
|
|
|
const RightSideFooterLink = styled.a`
|
|
color: rgb(129, 129, 129);
|
|
text-decoration: none;
|
|
&:hover {
|
|
text-decoration: underline;
|
|
color: #000;
|
|
}
|
|
`;
|
|
|
|
const RightSideFooterColumnTitle = styled.div`
|
|
font-size: 20px;
|
|
font-weight: 500;
|
|
color: #000;
|
|
`;
|
|
|
|
export const FooterDesktop = () => {
|
|
const path = usePathname();
|
|
const isTwentyDev = path.includes('developers');
|
|
|
|
if (isTwentyDev) return;
|
|
|
|
return (
|
|
<FooterContainer>
|
|
<div
|
|
style={{
|
|
width: '100%',
|
|
display: 'flex',
|
|
flexDirection: 'row',
|
|
justifyContent: 'space-between',
|
|
}}
|
|
>
|
|
<LeftSideFooter>
|
|
<Logo />
|
|
<div>The #1 Open Source CRM</div>
|
|
</LeftSideFooter>
|
|
<RightSideFooter>
|
|
<RightSideFooterColumn>
|
|
<RightSideFooterColumnTitle>Company</RightSideFooterColumnTitle>
|
|
<RightSideFooterLink href="/pricing">Pricing</RightSideFooterLink>
|
|
<RightSideFooterLink href="/story">Story</RightSideFooterLink>
|
|
</RightSideFooterColumn>
|
|
<RightSideFooterColumn>
|
|
<RightSideFooterColumnTitle>Resources</RightSideFooterColumnTitle>
|
|
<RightSideFooterLink href="https://docs.twenty.com">
|
|
Documentation
|
|
</RightSideFooterLink>
|
|
<RightSideFooterLink href="/releases">
|
|
Changelog
|
|
</RightSideFooterLink>
|
|
</RightSideFooterColumn>
|
|
<RightSideFooterColumn>
|
|
<RightSideFooterColumnTitle>Other</RightSideFooterColumnTitle>
|
|
<RightSideFooterLink href="/contributors">
|
|
Contributors
|
|
</RightSideFooterLink>
|
|
<RightSideFooterLink href="/oss-friends">
|
|
OSS Friends
|
|
</RightSideFooterLink>
|
|
<RightSideFooterLink href="/legal/terms">
|
|
Terms of Service
|
|
</RightSideFooterLink>
|
|
<RightSideFooterLink href="/legal/privacy">
|
|
Privacy Policy
|
|
</RightSideFooterLink>
|
|
</RightSideFooterColumn>
|
|
</RightSideFooter>
|
|
</div>
|
|
<div
|
|
style={{
|
|
width: '100%',
|
|
display: 'flex',
|
|
flexDirection: 'row',
|
|
justifyContent: 'space-between',
|
|
borderTop: '1px solid rgb(179, 179, 179)',
|
|
paddingTop: '32px',
|
|
}}
|
|
>
|
|
<div>
|
|
<span style={{ fontFamily: 'Inter, sans-serif' }}>©</span>
|
|
{new Date().getFullYear()} Twenty PBC
|
|
</div>
|
|
<div
|
|
style={{
|
|
display: 'flex',
|
|
flexDirection: 'row',
|
|
justifyContent: 'space-between',
|
|
gap: '10px',
|
|
}}
|
|
>
|
|
<a href="https://x.com/twentycrm" target="_blank" rel="noreferrer">
|
|
<XIcon size="M" />
|
|
</a>
|
|
<a
|
|
href="https://github.com/twentyhq/twenty"
|
|
target="_blank"
|
|
rel="noreferrer"
|
|
>
|
|
<GithubIcon2 size="M" />
|
|
</a>
|
|
<a
|
|
href="https://www.linkedin.com/company/twenty"
|
|
target="_blank"
|
|
rel="noreferrer"
|
|
>
|
|
<LinkedInIcon size="M" />
|
|
</a>
|
|
<a
|
|
href="https://discord.gg/UfGNZJfAG6"
|
|
target="_blank"
|
|
rel="noreferrer"
|
|
>
|
|
<DiscordIcon size="M" />
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</FooterContainer>
|
|
);
|
|
};
|