1- import { Box , Container } from '@mui/material' ;
1+ import { Box , Container , ListItemText , ListItem , List , Typography , Link } from '@mui/material' ;
22import { useState } from 'react' ;
33import CameraOpenButton from "@/components/CameraOpenButton" ;
44import ImageCanvas from '@/components/ImageCanvas' ;
@@ -11,22 +11,49 @@ const HomePage = () => {
1111 const [ canvas , setCanvas ] = useState < HTMLCanvasElement | undefined > ( ) ;
1212
1313 return (
14- < Container sx = { { display : "flex" , flexDirection : "column" , alignItems : "center" } } >
15- < h1 > Hitbox Generator</ h1 >
14+ < Container maxWidth = "sm" sx = { { display : "flex" , flexDirection : "column" , gap : 8 , mt : 4 } } >
1615 < Box sx = { { display : "flex" , flexDirection : "column" , gap : 2 } } >
17- < Box sx = { { maxWidth : '600px' } } >
18- < ImageCanvas
19- imageUrl = { imageUrl }
20- isDefault = { isDefault }
21- onCanvasReady = { setCanvas }
22- />
16+ < Typography variant = "h1" component = "h1" >
17+ Hitbox Generator
18+ </ Typography >
19+ < Box sx = { { display : "flex" , flexDirection : "column" , gap : 2 } } >
20+ < Box sx = { { width : "100%" } } >
21+ < ImageCanvas
22+ imageUrl = { imageUrl }
23+ isDefault = { isDefault }
24+ onCanvasReady = { setCanvas }
25+ />
26+ </ Box >
27+ < Box sx = { { display : "flex" , gap : 2 } } >
28+ < CameraOpenButton text = "Open Camera" onImageTaken = { onImageGiven } />
29+ < ImageSelectButton text = "Select Image" onImageSelect = { onImageGiven } />
30+ </ Box >
31+ < Box sx = { { display : "flex" , gap : 2 } } >
32+ < ShareButton text = "Share" canvas = { canvas } />
33+ </ Box >
2334 </ Box >
24- < Box sx = { { display : "flex" , gap : 2 } } >
25- < CameraOpenButton text = "Open Camera" onImageTaken = { onImageGiven } />
26- < ImageSelectButton text = "Select Image" onImageSelect = { onImageGiven } />
27- </ Box >
28- < Box sx = { { display : "flex" , gap : 2 } } >
29- < ShareButton text = "Share" canvas = { canvas } />
35+ </ Box >
36+
37+ < Box sx = { { display : "flex" , flexDirection : "column" , gap : 2 } } >
38+ < Typography variant = "h2" component = "h2" >
39+ About
40+ </ Typography >
41+ < Box sx = { { display : "flex" , flexDirection : "column" } } >
42+ < List sx = { { listStyleType : 'disc' , p : 0 , pl : 2 } } >
43+ < ListItem sx = { { display : 'list-item' , p : 0 } } >
44+ < ListItemText primary = "All image processing is done on the device. Therefore, no image is sent to the server. / 画像処理は全て手元の端末上で行われます。つまり、画像は一切サーバーに送信されません。" />
45+ </ ListItem >
46+ < ListItem sx = { { display : 'list-item' , p : 0 } } >
47+ < ListItemText primary = "For any issues that may occur in this application, the author is not responsible. / このアプリケーションで発生したいかなる問題についても、作者は責任を負いません。" />
48+ </ ListItem >
49+ < ListItem sx = { { display : 'list-item' , p : 0 } } >
50+ < ListItemText primary = {
51+ < Link href = "https://streamlinehq.com" target = "_blank" rel = "noopener noreferrer" >
52+ Free icons from Streamline. / アイコンは Streamline のものを使用しています。
53+ </ Link >
54+ } />
55+ </ ListItem >
56+ </ List >
3057 </ Box >
3158 </ Box >
3259 </ Container >
0 commit comments