buildJunnyISpectPanelButtonsForTesting function

  1. @visibleForTesting
List<DraggablePanelButtonItem> buildJunnyISpectPanelButtonsForTesting({
  1. required JunnyISpectRuntimeController controller,
  2. required VoidCallback onChanged,
  3. Future<void> onLogExportTap(
    1. BuildContext context
    )?,
  4. void onAnalyticsExportTap(
    1. BuildContext context
    )?,
  5. Iterable<DraggablePanelButtonItem> extraButtons = const <DraggablePanelButtonItem>[],
})

构建 Junny ISpect 面板按钮列表。

Implementation

@visibleForTesting
List<DraggablePanelButtonItem> buildJunnyISpectPanelButtonsForTesting({
  required JunnyISpectRuntimeController controller,
  required VoidCallback onChanged,
  Future<void> Function(BuildContext context)? onLogExportTap,
  void Function(BuildContext context)? onAnalyticsExportTap,
  Iterable<DraggablePanelButtonItem> extraButtons =
      const <DraggablePanelButtonItem>[],
}) {
  final DraggablePanelButtonItem? logProfilePanelButton =
      buildISpectLogProfilePanelButtonForTesting(
    controller: controller,
    onChanged: onChanged,
  );
  final DraggablePanelButtonItem? rawPayloadPanelButton =
      buildISpectRawPayloadPanelButtonForTesting(
    controller: controller,
    onChanged: onChanged,
  );

  return <DraggablePanelButtonItem>[
    buildISpectLogExportPanelButtonForTesting(
      onExport: onLogExportTap ?? (BuildContext context) async {},
    ),
    if (logProfilePanelButton != null) logProfilePanelButton,
    if (rawPayloadPanelButton != null) rawPayloadPanelButton,
    if (controller.effectiveConfig.analyticsExportPanelButtonEnabled &&
        onAnalyticsExportTap != null)
      DraggablePanelButtonItem(
        icon: CupertinoIcons.chart_bar,
        label: '统计导出',
        onTap: onAnalyticsExportTap,
      ),
    ...extraButtons,
  ];
}