/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE in the repository root for full details.
*/

import { type OneOnOneLayout, type OneOnOneLayoutMedia } from "./CallViewModel";
import { type TileStore } from "./TileStore";

/**
 * Produces a one-on-one layout with the given media.
 */
export function oneOnOneLayout(
  media: OneOnOneLayoutMedia,
  prevTiles: TileStore,
): [OneOnOneLayout, TileStore] {
  const update = prevTiles.from(2);
  update.registerGridTile(media.local);
  update.registerGridTile(media.remote);
  const tiles = update.build();
  return [
    {
      type: media.type,
      local: tiles.gridTilesByMedia.get(media.local)!,
      remote: tiles.gridTilesByMedia.get(media.remote)!,
    },
    tiles,
  ];
}
