فتح / إغلاق اللوحات

قم بطي وفتح الحاوية باستخدام أحداث الأمر.


استخدام containerOpenCloseSubjectMap

كل حاوية هي ContainerOpenCloseProviderيتم إعداد الموضوع الداخلي بواسطة. من الزر الخارجي، يتم إرسال containerOpenCloseSubjectMap[containerName].next(...)أوامر open/close/toggle.

tsx
import {
  FlexLayout,
  FlexLayoutContainer,
  containerOpenCloseSubjectMap,
} from "@byeolnaerim/flex-layout";
import { useState } from "react";

function OpenCloseSample() {
  const [state, setState] = useState("open");

  const sendPanelCommand = (mode: "open" | "close" | "toggle") => {
    containerOpenCloseSubjectMap["workspace-left"]?.next({
      mode,
      initOpenState: true,
      openOption: { isPrevSizeOpen: true },
      onOpen: () => setState("open"),
      onClose: () => setState("closed"),
    });
  };

  return (
    <>
      <button type="button" onClick={() => sendPanelCommand("open")}>
        Open
      </button>
      <button type="button" onClick={() => sendPanelCommand("close")}>
        Close
      </button>
      <button type="button" onClick={() => sendPanelCommand("toggle")}>
        Toggle
      </button>

      <span>workspace-left: {state}</span>

      <FlexLayout
        layoutName="open-close-workspace"
        direction="row"
        panelMovementMode="divorce"
      >
        <FlexLayoutContainer
          containerName="workspace-left"
          isResizePanel
        >
          <div>Left Panel</div>
        </FlexLayoutContainer>

        <FlexLayoutContainer containerName="workspace-main">
          <div>Main Panel</div>
        </FlexLayoutContainer>
      </FlexLayout>
    </>
  );
}

خيارات أساسية لطلب حالة الحاوية

mode

open, close, toggle 중 하나입니다.

initOpenState

초기 open 상태를 함께 전달할 때 사용합니다.

openOption

열릴 때 전달되는 옵션입니다. 이전 크기로 열고 싶다면 isPrevSizeOpen을 사용합니다.

closeOption

닫힐 때 전달되는 옵션입니다. 닫을 때 grow를 어떻게 계산할지 조정합니다.

onOpen / onClose

열림/닫힘 처리가 끝난 뒤 호출되는 콜백입니다.

تبديل بنقرة مزدوجة

tsx
import {
  FlexLayout,
  FlexLayoutContainer,
  useDoubleClickToggle,
} from "@byeolnaerim/flex-layout";

function DoubleClickToggleSample() {
  const { isOpen } = useDoubleClickToggle("double-click-left", {
    mode: "toggle",
    initOpenState: true,
    openOption: { isPrevSizeOpen: true },
  });

  return (
    <>
      <span>
        resize panel을 더블클릭하십시오. 현재 상태:{" "}
        {isOpen === false ? "closed" : "open"}
      </span>

      <FlexLayout
        layoutName="double-click-workspace"
        direction="row"
        panelMovementMode="divorce"
      >
        <FlexLayoutContainer
          containerName="double-click-left"
          isResizePanel
        >
          <div>Double Click Target</div>
        </FlexLayoutContainer>

        <FlexLayoutContainer containerName="double-click-main">
          <div>Main Panel</div>
        </FlexLayoutContainer>
      </FlexLayout>
    </>
  );
}
© 2026 بيولناريم. جميع الحقوق محفوظة.مقدمةسياسة معالجة المعلومات الشخصية