Files
twenty/packages/twenty-website/src/app/_components/ui/layout/FooterDesktop.tsx
Ady Beraud b82519301c Website UI design (#4829)
**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>
2024-04-05 08:41:08 +02:00

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>
);
};