/src/modules/new/components/one/index.tsx
import { ComponentNewOne, Maybe } from "@/types/gpl/graphql";
import s from "./index.module.scss";
import Image from "@/modules/common/components/image";
import Button from "@/modules/common/components/button/border";
import { getTranslations } from "next-intl/server";
import { Link } from "@/lib/i18n/navigation";
interface Props {
  param: Maybe<ComponentNewOne> | undefined;
}

export default async function NewOne({ param }: Props) {
  const t = await getTranslations();
  return (
   <div className={s.contentBox}>
      <div className={s.newsWrap}>
         <div className={s.listBox}>
            {param?.list?.map((item,index)=>{
               return (
                   <div key={index} className={s.newsItem}>
   
                     <div className={s.imgBox}>
                        <Image image={item?.img} sizes="144px" />
                     </div>
   
                      <div className={s.descBox}>
                        <div className={s.title}>
                           {item?.title}
                        </div>
      
                        <div className={s.content}>
                           {item?.desc}
                        </div>
                       <Link className={s.more} href={`news/${item?.slug}`}>
                         {t('common:learnMore')}
                      <svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" className="size-6" data-astro-cid-i6d4wzmg="true">
                          <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3"></path>
                      </svg>
                       </Link>
                      </div>
                   </div>
               )
            })}
   
         </div>
      </div>
   </div>
  );
}
/src/modules/new/components/one/index.module.scss
   .contentBox {
     background: #fff;

     .newsWrap {
       max-width: var(--max-width);
       margin: 0 auto;
       padding: 50px var(--content-padding);

       @include lg {
         padding: var(--pc-top-padding) var(--content-padding);
       }

       .listBox {
         margin: 0 auto;
         display: grid;
         gap: 14px;

         @include lg {
           grid-template-columns: 1fr 1.3fr;
           grid-template-rows: repeat(3, 1fr);
           align-items: stretch;
         }

         .newsItem {
           background: var(--back-color);
           display: flex;
           flex-direction: row;

           .imgBox {
             flex: 1;
           }

           .descBox {
             flex: 2.5;
             display: flex;
             flex-direction: column;

             .title {
               margin-bottom: 10px;
               font-size: var(--font-lg);
               /*font-weight: 500;*/
               @include line-clamp(1);
             }

             .content {
               margin-bottom: 10px;
               @include line-clamp(2);
               font-size: var(--font-base);
             }
           }

           &:first-child {
             flex-direction: column;

             @include lg {
               grid-row: 1 / 4;
             }

             .imgBox {

               aspect-ratio: 4/3;
             }

             .descBox {

               flex: 1;
               flex-direction: column;
               padding: 14px 18px 18px;

               .content {
                 margin-top: 5px;
               }

               .more {
                 padding-top: 10px;
               }
             }
           }

           &:not(:first-child) {
             flex-direction: row;
             align-items: stretch;

             .imgBox {
               height: 100%;
               width: auto;
               aspect-ratio: 1;
             }

             .descBox {
               margin: 20px 0 0 20px;

               .content {
                 white-space: pre-line;
                 line-height: 1.8;
                 padding-right: 10px;
               }
             }

           }
         }
       }

       .more {
         display: flex;
         align-items: center;
         color: var(--primary-color);
         padding: 10px 25px 10px 0;
         border-radius: 25px;
         cursor: pointer;

         svg {
           width: 15px;
           height: 15px;
           margin-left: 5px;
         }
       }
     }



   }