[TIL/React] 2023/09/13
쇼핑하기 페이지 추가 🟢antibioFree를 통해 subtitle에 '무항생제'가 포함된 경우, 해당 제품명의 색을 green으로 변경하는 로직을 추가했다.이미지에 마우스를 갖다 대면 호버를 통해 이미지 배경이 검정색으로 변한다. 고기가 상당히 고급져보이는 효과가
쇼핑하기 페이지 추가 🟢
import React, { useState } from "react";
import styled from "@emotion/styled";
const ProductWrapper = styled.div`
width: calc(33.3% - 20px);
margin: 10px;
`;
const ProductImgWrapper = styled.div`
background-color: rgb(249, 247, 248);
width: 100%;
height: 400px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 16px;
box-shadow: 0px 10px 8px #999;
&:hover {
background-color: black;
}
`;
const ProductImage = styled.img`
width: 100%;
height: auto;
`;
const ProductInfoTitle = styled.p`
font-weight: bolder;
font-size: 25px;
color: ${(props) => (props.antibioFree ? "green" : "none")};
`;
const ProductInfoEtc = styled.p`
color: #9b9b9b;
font-weight: bolder;
`;
const ModalOverlay = styled.div`
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
`;
const ModalContent = styled.div`
width: 1000px;
background: white;
padding: 20px;
border-radius: 5px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
text-align: center;
`;
const PurchaseButton = styled.button`
background-color: black;
color: white;
cursor: pointer;
font-size: 20px;
border-radius: 10px;
padding: 10px 20px;
transition: background-color 0.3s, color 0.3s, border 0.3s;
border: 2px solid black;
&:hover {
background-color: white;
color: black;
}
`;
const CommonCard = ({ data = {}, type = "A" }) => {
const antibioFree = data?.subtitle?.includes("무항생제");
const [isModalOpen, setIsModalOpen] = useState(false);
const openModal = () => {
setIsModalOpen(true);
};
const closeModal = () => {
setIsModalOpen(false);
};
return (
<ProductWrapper key={data?.id}>
{/* image */}
<ProductImgWrapper onClick={() => openModal()}>
<ProductImage src={data?.image} />
</ProductImgWrapper>
{/* title case */}
<div>
{type === "A" ? (
<ProductInfoTitle antibioFree={antibioFree}>
{data?.subtitle}
</ProductInfoTitle>
) : (
<ProductInfoTitle antibioFree={antibioFree}>
{data?.title}
</ProductInfoTitle>
)}
{/* product price & weight */}
<ProductInfoEtc>
{data?.price} / {data?.weight}
</ProductInfoEtc>
</div>
{/* modal */}
{isModalOpen && (
<ModalOverlay onClick={() => closeModal()}>
<ModalContent>
<h2>상품 정보</h2>
<div>
<p>{data?.subtitle}</p>
<p>
{data?.price} / {data?.weight}
</p>
</div>
<PurchaseButton onClick={() => closeModal()}>
{data?.subtitle}을 구매하시겠습니까?
</PurchaseButton>
</ModalContent>
</ModalOverlay>
)}
</ProductWrapper>
);
};
export default CommonCard;
antibioFree를 통해 subtitle에 '무항생제'가 포함된 경우, 해당 제품명의 색을 green으로 변경하는 로직을 추가했다.
이미지에 마우스를 갖다 대면 호버를 통해 이미지 배경이 검정색으로 변한다. 고기가 상당히 고급져보이는 효과가 생겼다.
isModalOpen이라는 상태와 해당 상태에 필요한 toggle 함수를 만들었다. modal을 띄우는 것이 목적이었다. 지금은 구매 버튼을 클릭하면 modal이 꺼진다.
modal까지 공용 카드의 요소로 봐야하는가에 대한 의문이 생겼다. 고민을 좀 해야겠다.
진행 🟢
호버

모달

모달 호버

회고~~는 아니고 대충 내일 계획~~ 🟢
1. 선형대수 관련, ~~대충~~ 정성을 다해 듣기 2. R 관련, ~~대충~~ 정성을 다해 듣기 3. ANOVA 관련, ~~대충~~ 정성을 다해 공부 4. Auth data 활용, 로그인 이후 AppBar UI 변경
More to read
AI&ML 기초
Reference: https://bettermesol.github.io/ml/2019/09/16/ai-ml-dl/AI: 기계가 사람처럼 생각하고 판단하게 만드는 가장 넓은 범주의 기술입니다.ML: 데이터를 학습하여 스스로 규칙을 찾아내는 AI의 한 분야로,
'AI Agent Economy'Novitas : AI Agent가 지갑을 가지는 세상
얼마 전, 미래에셋증권 리서치 리포트(올해는 이더리움이다: 에이전트 시대의 Near Automata)를 접하게 되었습니다. AI Agent를 인간과 함께할 경제 주체로 바라보는 시각에 적잖이 충격을 받았더랬죠.한 가지 짚고 넘어갈 부분이 있습니다. 우리가 흔히 'AI'
'ERC-8004'Novitas: AI 에이전트 경제 주체
Web 4.0을 한 문장으로 정의하면 Sovereign Transact입니다.AI가 인간의 허락 없이 지갑을 소유하고, 결제를 수행하며, 인프라를 통제하는 주권적 경제 주체가 되는 세계입니다. Web 3.0이 블록체인 기반의 탈중앙화를 실현했다면, Web 4.0은 그