

import { observer } from "mobx-react";
import React from "react";
// buzzwareTech imports
import { AppRailRoot } from "@/components/navigation";
import { useAppRailVisibility } from "@/lib/app-rail";
import { cn } from "@buzzwaretech/utils";
// local imports
import { TopNavigationRoot } from "../navigations";

export const WorkspaceContentWrapper = observer(
  function WorkspaceContentWrapper({
    children,
  }: {
    children: React.ReactNode;
  }) {
    // Use the context to determine if app rail should render
    const { shouldRenderAppRail } = useAppRailVisibility();

    return (
      <div className="relative flex size-full flex-col overflow-hidden bg-canvas transition-all duration-300 ease-in-out">
        <TopNavigationRoot />
        <div className="relative flex size-full overflow-hidden">
          {/* Conditionally render AppRailRoot based on context */}
          {shouldRenderAppRail && <AppRailRoot />}
          <div
            className={cn(
              "relative size-full flex-grow overflow-hidden pr-2 pb-2 pl-2 transition-all duration-300 ease-in-out",
              {
                "pl-0!": shouldRenderAppRail,
              },
            )}
          >
            {children}
          </div>
        </div>
      </div>
    );
  },
);
