From 1990e5434c05d088a1519c502638722d158c13e1 Mon Sep 17 00:00:00 2001 From: Radiquum <kentai.waah@gmail.com> Date: Sat, 22 Mar 2025 18:51:31 +0500 Subject: [PATCH] refactor: release page layout --- .../ReleaseInfo/ReleaseInfo.Basics.tsx | 2 +- .../ReleaseInfo/ReleaseInfo.Info.tsx | 2 +- .../ReleasePlayer/ReleasePlayerCustom.tsx | 2 +- app/pages/Release.tsx | 169 ++++++++---------- 4 files changed, 82 insertions(+), 93 deletions(-) diff --git a/app/components/ReleaseInfo/ReleaseInfo.Basics.tsx b/app/components/ReleaseInfo/ReleaseInfo.Basics.tsx index 50fdd5b..c23cf4f 100644 --- a/app/components/ReleaseInfo/ReleaseInfo.Basics.tsx +++ b/app/components/ReleaseInfo/ReleaseInfo.Basics.tsx @@ -13,7 +13,7 @@ export const ReleaseInfoBasics = (props: { const [isFullDescription, setIsFullDescription] = useState(false); return ( - <Card className="h-full"> + <Card className="h-full row-span-2"> <div className="flex flex-col w-full h-full gap-4 lg:flex-row"> <Image className="w-[285px] max-h-[385px] object-cover border border-gray-200 rounded-lg shadow-md dark:border-gray-700" diff --git a/app/components/ReleaseInfo/ReleaseInfo.Info.tsx b/app/components/ReleaseInfo/ReleaseInfo.Info.tsx index ab58da7..ae0219e 100644 --- a/app/components/ReleaseInfo/ReleaseInfo.Info.tsx +++ b/app/components/ReleaseInfo/ReleaseInfo.Info.tsx @@ -28,7 +28,7 @@ export const ReleaseInfoInfo = (props: { genres: string; }) => { return ( - <Card className="h-full"> + <Card> <Table> <Table.Body> <Table.Row> diff --git a/app/components/ReleasePlayer/ReleasePlayerCustom.tsx b/app/components/ReleasePlayer/ReleasePlayerCustom.tsx index 4fea4ee..9e89055 100644 --- a/app/components/ReleasePlayer/ReleasePlayerCustom.tsx +++ b/app/components/ReleasePlayer/ReleasePlayerCustom.tsx @@ -282,7 +282,7 @@ export const ReleasePlayerCustom = (props: { }, [episode.selected]); return ( - <Card className="h-full"> + <Card className="aspect-video min-h-min-h-[300px] sm:min-h-[466px] md:min-h-[540px] lg:min-h-[512px] xl:min-h-[608px] 2xl:min-h-[712px]"> {( !voiceover.selected || !source.selected || diff --git a/app/pages/Release.tsx b/app/pages/Release.tsx index c29864f..581e7f6 100644 --- a/app/pages/Release.tsx +++ b/app/pages/Release.tsx @@ -71,80 +71,83 @@ export const ReleasePage = (props: any) => { } return ( - <> - <div className="flex flex-col lg:grid lg:grid-cols-[70%_30%] gap-2 grid-flow-row-dense"> - <div className="[grid-column:1] [grid-row:span_2]"> - <ReleaseInfoBasics - image={data.release.image} - title={{ - ru: data.release.title_ru, - original: data.release.title_original, - }} - description={data.release.description} - note={data.release.note} - release_id={data.release.id} - /> - </div> - <div className="[grid-column:2]"> - <ReleaseInfoInfo - country={data.release.country} - aired_on_date={data.release.aired_on_date} - year={data.release.year} - episodes={{ - total: data.release.episodes_total, - released: data.release.episodes_released, - }} - season={data.release.season} - status={data.release.status ? data.release.status.name : "Анонс"} - duration={data.release.duration} - category={data.release.category.name} - broadcast={data.release.broadcast} - studio={data.release.studio} - author={data.release.author} - director={data.release.director} - genres={data.release.genres} - /> - </div> - <div className="[grid-column:2]"> - <ReleaseInfoUserList - userList={userList} - isFavorite={userFavorite} - release_id={data.release.id} + <div className="flex flex-col gap-2"> + <div className="grid grid-cols-1 lg:grid-cols-[70%_30%] gap-2 grid-flow-row-dense"> + <ReleaseInfoBasics + image={data.release.image} + title={{ + ru: data.release.title_ru, + original: data.release.title_original, + }} + description={data.release.description} + note={data.release.note} + release_id={data.release.id} + /> + <ReleaseInfoInfo + country={data.release.country} + aired_on_date={data.release.aired_on_date} + year={data.release.year} + episodes={{ + total: data.release.episodes_total, + released: data.release.episodes_released, + }} + season={data.release.season} + status={data.release.status ? data.release.status.name : "Анонс"} + duration={data.release.duration} + category={data.release.category.name} + broadcast={data.release.broadcast} + studio={data.release.studio} + author={data.release.author} + director={data.release.director} + genres={data.release.genres} + /> + <ReleaseInfoUserList + userList={userList} + isFavorite={userFavorite} + release_id={data.release.id} + token={userStore.token} + profile_id={userStore.user ? userStore.user.id : null} + setUserList={setUserList} + setIsFavorite={setUserFavorite} + collection_count={data.release.collection_count} + /> + </div> + <div className="grid grid-cols-1 lg:grid-cols-[70%_30%] gap-2 grid-flow-row-dense"> + <div className="flex flex-col gap-2"> + {data.release.status && + data.release.status.name.toLowerCase() != "анонс" && ( + <> + {preferenceStore.params.experimental.newPlayer ? + <ReleasePlayerCustom id={props.id} token={userStore.token} /> + : <ReleasePlayer id={props.id} />} + </> + )} + <CommentsMain + release_id={props.id} token={userStore.token} - profile_id={userStore.user ? userStore.user.id : null} - setUserList={setUserList} - setIsFavorite={setUserFavorite} - collection_count={data.release.collection_count} + comments={data.release.comments} /> </div> - {data.release.status && - data.release.status.name.toLowerCase() != "анонс" && ( - <div className="[grid-column:1] [grid-row:span_12]"> - {preferenceStore.params.experimental.newPlayer ? - <ReleasePlayerCustom id={props.id} token={userStore.token} /> - : <ReleasePlayer id={props.id} />} - </div> - )} - {data.release.status && - data.release.status.name.toLowerCase() != "анонс" && ( - <div className="[grid-column:2]"> - <ReleaseInfoRating - release_id={props.id} - grade={data.release.grade} - token={userStore.token} - votes={{ - 1: data.release.vote_1_count, - 2: data.release.vote_2_count, - 3: data.release.vote_3_count, - 4: data.release.vote_4_count, - 5: data.release.vote_5_count, - total: data.release.vote_count, - user: data.release.your_vote, - }} - /> - </div> - )} - <div className="[grid-column:2] [grid-row:span_4]"> + <div className="flex flex-col gap-2"> + {data.release.status && + data.release.status.name.toLowerCase() != "анонс" && ( + <div className="[grid-column:2]"> + <ReleaseInfoRating + release_id={props.id} + grade={data.release.grade} + token={userStore.token} + votes={{ + 1: data.release.vote_1_count, + 2: data.release.vote_2_count, + 3: data.release.vote_3_count, + 4: data.release.vote_4_count, + 5: data.release.vote_5_count, + total: data.release.vote_count, + user: data.release.your_vote, + }} + /> + </div> + )} <InfoLists completed={data.release.completed_count} planned={data.release.plan_count} @@ -152,32 +155,18 @@ export const ReleasePage = (props: any) => { delayed={data.release.hold_on_count} watching={data.release.watching_count} /> - </div> - - {data.release.screenshot_images.length > 0 && ( - <div className="[grid-column:2] [grid-row:span_11]"> + {data.release.screenshot_images.length > 0 && ( <ReleaseInfoScreenshots images={data.release.screenshot_images} /> - </div> - )} - - {data.release.related_releases.length > 0 && ( - <div className="[grid-column:2] [grid-row:span_2]"> + )} + {data.release.related_releases.length > 0 && ( <ReleaseInfoRelated release_id={props.id} related={data.release.related} related_releases={data.release.related_releases} /> - </div> - )} - - <div className="[grid-column:1] [grid-row:span_32]"> - <CommentsMain - release_id={props.id} - token={userStore.token} - comments={data.release.comments} - /> + )} </div> </div> - </> + </div> ); };