Skip to content

Commit

Permalink
Merge pull request #84 from itizaworld/feature/implement-share
Browse files Browse the repository at this point in the history
X のシェア機能
  • Loading branch information
itizawa authored Dec 19, 2023
2 parents 6063153 + a0ebd74 commit 2d15cac
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 1 deletion.
6 changes: 5 additions & 1 deletion src/app/[slug]/[date]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { fetchMe } from '~/app/_actions/userActions';
import { NippoEditor } from '~/app/_components/domains/Nippo/NippoEditor';
import { getDateString } from '~/libs/getDateString';
import { NippoPreview } from '~/app/_components/domains/Nippo/NippoPreview';
import { NippoShareIcon } from '~/app/_components/domains/Nippo/NippoShareIcon';

type Props = { params: { slug: string; date: string } };

Expand All @@ -31,7 +32,10 @@ export default async function Page({ params }: Props) {
<div className="min-h-[500px] max-w-[1024px] mx-auto flex gap-[16px] md:gap-[48px]">
<div className="px-[8px] pt-[8px] pb-[32px] w-[100%]">
<NippoBreadcrumbs objective={objective} date={dateString} />
<p className="mt-[32px] text-xl font-bold mb-[8px] text-gray-700">{dateString}</p>
<div className="mt-[32px] mb-[8px] flex justify-between">
<p className="text-xl font-bold text-gray-700">{dateString}</p>
{nippo && <NippoShareIcon nippo={nippo} />}
</div>
{currentUser?._id === objective.createdUserId ? (
<NippoEditor objectiveId={objective._id} nippo={nippo} date={params.date} />
) : (
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
'use client';

import { Button, Link } from '@nextui-org/react';
import { format } from 'date-fns';

import { Icon } from '~/app/_components/uiParts/icons';
import { Nippo } from '~/domains/Nippo';

export const NippoShareIcon = ({ nippo }: { nippo: Nippo }) => {
return (
<Link
href={`https://twitter.com/intent/tweet?text=${format(new Date(nippo.date), 'yyyy年MM月dd日')}の日報&hashtags=みんなの日報&url=${
window.location.href
}`}
target="_blank"
rel="noopener noreferrer"
>
<Button isIconOnly size="sm" variant="light" radius="full">
<Icon icon="TWITTER_X" height={16} width={16} />
</Button>
</Link>
);
};
1 change: 1 addition & 0 deletions src/app/_components/domains/Nippo/NippoShareIcon/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { NippoShareIcon } from './NippoShareIcon';
5 changes: 5 additions & 0 deletions src/app/_components/uiParts/icons/icon.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,10 @@ const Twitter: FC = () => (
<path d="M5.026 15c6.038 0 9.341-5.003 9.341-9.334 0-.14 0-.282-.006-.422A6.685 6.685 0 0 0 16 3.542a6.658 6.658 0 0 1-1.889.518 3.301 3.301 0 0 0 1.447-1.817 6.533 6.533 0 0 1-2.087.793A3.286 3.286 0 0 0 7.875 6.03a9.325 9.325 0 0 1-6.767-3.429 3.289 3.289 0 0 0 1.018 4.382A3.323 3.323 0 0 1 .64 6.575v.045a3.288 3.288 0 0 0 2.632 3.218 3.203 3.203 0 0 1-.865.115 3.23 3.23 0 0 1-.614-.057 3.283 3.283 0 0 0 3.067 2.277A6.588 6.588 0 0 1 .78 13.58a6.32 6.32 0 0 1-.78-.045A9.344 9.344 0 0 0 5.026 15z" />
);

const TwitterX: FC = () => (
<path d="M12.6.75h2.454l-5.36 6.142L16 15.25h-4.937l-3.867-5.07-4.425 5.07H.316l5.733-6.57L0 .75h5.063l3.495 4.633L12.601.75Zm-.86 13.028h1.36L4.323 2.145H2.865l8.875 11.633Z" />
);

const Github: FC = () => (
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z" />
);
Expand Down Expand Up @@ -342,6 +346,7 @@ export const IconComponentMapping = {
THREE_DOTS_VERTICAL: <ThreeDotsVerticalIcon />,
TRASH: <TrashIcon />,
TWITTER: <Twitter />,
TWITTER_X: <TwitterX />,
UPDATE: Update,
};

Expand Down

0 comments on commit 2d15cac

Please sign in to comment.