Legacy
CorePortal
포털 컴포넌트
Usage
기본 사용법
import { CorePortal } from '@featuring-corp/components';
<CorePortal containerId="my-portal">
<div>포털 내용</div>
</CorePortal>기본 Container ID 사용
import { CorePortal } from '@featuring-corp/components';
<CorePortal>
<div>포털 내용 (기본 containerId: "portal")</div>
</CorePortal>모달과 함께 사용
import { useState } from 'react';
import { CorePortal } from '@featuring-corp/components';
import { CoreModal, CoreButton } from '@featuring-corp/components';
const [open, setOpen] = useState(false);
<>
<CoreButton text="모달 열기" onClick={() => setOpen(true)} />
{open && (
<CorePortal>
<CoreModal
size="md"
title="타이틀"
handleClose={() => setOpen(false)}
>
<div>모달 내용</div>
</CoreModal>
</CorePortal>
)}
</>드롭다운과 함께 사용
import { useState, useRef } from 'react';
import { CorePortal } from '@featuring-corp/components';
import { CoreDropdown } from '@featuring-corp/components';
const [open, setOpen] = useState(false);
const ref = useRef(null);
<>
<button ref={ref} onClick={() => setOpen(!open)}>
드롭다운 열기
</button>
{open && (
<CorePortal>
<CoreDropdown
open={open}
handler={setOpen}
placement="bottom-center"
targetRef={ref}
>
<div>드롭다운 내용</div>
</CoreDropdown>
</CorePortal>
)}
</>커스텀 Container ID
import { CorePortal } from '@featuring-corp/components';
// HTML에 <div id="custom-portal"></div>가 있어야 함
<CorePortal containerId="custom-portal">
<div>커스텀 포털 내용</div>
</CorePortal>Props
ComponentPropsWithoutRef<'div'> 타입을 확장한 컴포넌트입니다.
Prop
Type