generatePageContent function
- 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()}');
}
}
}