felangel / flow_builder

Flutter Flows made easy! A Flutter package which simplifies navigation flows with a flexible, declarative API.
https://pub.dev/packages/flow_builder
MIT License
390 stars 64 forks source link

feat!: add onGeneratePages #4

Closed felangel closed 3 years ago

felangel commented 3 years ago

Status

READY

Breaking Changes

YES

Description

Before

class OnboardingFlow extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return FlowBuilder<OnboardingSteps>(
      state: OnboardingSteps.step1,
      builder: (context, state) {
        switch (state) {
          case OnboardingSteps.step1:
            return [Step1.page()];
          case OnboardingSteps.step2:
            return [Step1.page(), Step2.page()];
          case OnboardingSteps.step3:
            return [Step1.page(), Step2.page(), Step3.page()];
          default:
            return [Step1.page()];
        }
      },
    );
  }
}

After

class OnboardingFlow extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return FlowBuilder<OnboardingSteps>(
      state: OnboardingSteps.step1,
      onGeneratePages: (state) {
        switch (state) {
          case OnboardingSteps.step1:
            return [Step1.page()];
          case OnboardingSteps.step2:
            return [Step1.page(), Step2.page()];
          case OnboardingSteps.step3:
            return [Step1.page(), Step2.page(), Step3.page()];
          default:
            return [Step1.page()];
        }
      },
    );
  }
}

Type of Change