Загрузка данных


private updateSelectedDrawing = (): void => {
  const drawings = this.drawings$.value;
  const pendingDrawing = drawings.find(
    (drawing) => drawing.isCreationPending() && drawing.isSelected(),
  );

  if (pendingDrawing) {
    drawings.forEach((drawing) => {
      if (drawing !== pendingDrawing && drawing.isSelected()) {
        drawing.setSelected(false);
      }
    });

    if (this.selectedDrawing$.value !== null) {
      this.selectedDrawing$.next(null);
    }

    return;
  }

  const selectedDrawings = drawings.filter(
    (drawing) => drawing.isSelected() && !drawing.isCreationPending(),
  );
  const currentDrawing = this.selectedDrawing$.value;
  const nextDrawing =
    selectedDrawings.find((drawing) => drawing !== currentDrawing) ??
    selectedDrawings[0] ??
    null;

  this.setSelectedDrawing(nextDrawing);
};