hunk.code_window: 		log.debug(`ns:${PAGE_EDIT_NAMESPACE}# socket ${id} left the room ${room}`)
   		if(room.startsWith(PAGE_ROOM_PREFIX)) { // someone left the page edit, notify others
   			io.of(PAGE_EDIT_NAMESPACE).to(room).emit(LEAVE_EDIT_EVENT_NAME, id);
   		}
   	});
   	io.of(PAGE_EDIT_NAMESPACE).adapter.on("join-room", (room, id) => {
  
hunk.labels: keep keep keep add keep keep keep
hunk.after_edit: 		sendCurrentUsers(io.of(PAGE_EDIT_NAMESPACE), room, PAGE_ROOM_PREFIX);
  
hunk.file_path: app/rts/src/server.ts
hunk.type: add
file: import { Component } from "react";
  import { Color } from "constants/Colors";
  
  /***
   * Components are responsible for binding render inputs to corresponding UI SDKs
   */
  abstract class BaseComponent<T extends ComponentProps> extends Component<T> {}
  
  export interface ComponentProps {
    widgetId: string;
    widgetName?: string;
    isDisabled?: boolean;
    isVisible?: boolean;
    backgroundColor?: Color;
  }
  
  export default BaseComponent;
  