{awakePeriod.okiTime.text}
71 |{awakePeriod.neTime.text}
74 |画像生成中...
69 |{infoMsg}
75 | )} 76 | > 77 | ) 78 | } 79 | -------------------------------------------------------------------------------- /frontend/src/components/CalendarUser.tsx: -------------------------------------------------------------------------------- 1 | import Image from 'next/image' 2 | import styled from 'styled-components' 3 | 4 | import { User } from '../entity/User' 5 | 6 | const UserInfoWrapper = styled.div` 7 | display: flex; 8 | justify-content: center; 9 | align-items: center; 10 | margin-bottom: 0.5rem; 11 | font-weight: 600; 12 | ` 13 | 14 | const UserDescription = styled.p` 15 | margin-left: 8px; 16 | ` 17 | 18 | const UserIcon = styled(Image)` 19 | border-radius: 48px; 20 | ` 21 | 22 | type Props = { 23 | user: User 24 | } 25 | 26 | export const CalendarUser = ({ user }: Props) => { 27 | return ( 28 |利用状況の計測のためにGoogle Analyticsを利用しています。
57 | > 58 | ) 59 | } 60 | -------------------------------------------------------------------------------- /frontend/src/components/Times.tsx: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components' 2 | 3 | import { rangeTimes } from '../lib/time' 4 | import { Area } from '../atom/Area' 5 | 6 | const Hour = styled(Area)<{ generatingImage: boolean }>` 7 | margin: 4px 0; 8 | font-size: 1rem; 9 | min-width: 1rem; 10 | @media (max-width: 60rem) { 11 | font-size: 0.7rem; 12 | min-width: 0.7rem; 13 | } 14 | @media (max-width: 40rem) { 15 | font-size: ${({ generatingImage }) => (generatingImage ? '1rem' : '0.2rem')}; 16 | min-width: ${({ generatingImage }) => (generatingImage ? '1.5rem' : '0.2rem')}; 17 | } 18 | ` 19 | 20 | export const Times = ({ row, generatingImage }: { row: string; generatingImage: boolean }) => { 21 | return ( 22 | <> 23 | {rangeTimes().map((time, i) => ( 24 |Twitter APIの有料化に伴い、サービスを終了しました。
55 |長きにわたりお使いいただきありがとうございました。
56 |