generatePageContent function

Future<void> generatePageContent(
  1. GeneratePageContentOptions options
)

Generates the content for a specific page based on the provided options.

This function updates the page content for the given page in options, which includes updating the main window and setting the current page.

Example usage:

final options = GeneratePageContentOptions(
  page: 1,
  parameters: GeneratePageContentParameters(
    paginatedStreams: [[stream1, stream2], [stream3, stream4]],
    currentUserPage: 0,
    updateMainWindow: true,
    updateCurrentUserPage: (page) => print('Current user page updated to: $page'),
    updateUpdateMainWindow: (flag) => print('Main window update flag: $flag'),
    dispStreams: (lStreams, ind, {parameters, breakRoom = -1, inBreakRoom = false}) async {
      print('Displaying streams for page $ind');
    },
    getUpdatedAllParams: () => updatedParameters,
  ),
);
await generatePageContent(options);

Returns a Future<void> that completes when the page content is generated.

Implementation

Future<void> generatePageContent(GeneratePageContentOptions options) async {
  try {
    List<List<Stream>> paginatedStreams = options.parameters.paginatedStreams;
    var currentUserPage = options.parameters.currentUserPage;
    var updateMainWindow = options.parameters.updateMainWindow;
    var updateCurrentUserPage = options.parameters.updateCurrentUserPage;
    var updateUpdateMainWindow = options.parameters.updateUpdateMainWindow;
    var dispStreams = options.parameters.dispStreams;

    // Convert page to an integer if passed as a string.
    var page = options.page;

    // Update current user page.
    currentUserPage = page;
    updateCurrentUserPage(currentUserPage);

    // Update main window flag.
    updateMainWindow = true;
    updateUpdateMainWindow(updateMainWindow);

    // Display streams for the specified page.
    final dispOptions = DispStreamsOptions(
      lStreams: paginatedStreams[page],
      ind: page,
      parameters: options.parameters,
      breakRoom: options.breakRoom,
      inBreakRoom: options.inBreakRoom,
    );
    await dispStreams(
      dispOptions,
    );
  } catch (error) {
    if (kDebugMode) {
      print('Error generating page content: ${error.toString()}');
    }
  }
}