anchor.diff:    }
   }
   
  -class StepTwo extends StatelessWidget {
  -  const StepTwo({
  +class _StepTwo extends StatefulWidget {
  +  final TextEditingController primaryController;
  +  final TextEditingController secondaryController;
  +  final TextEditingController tokenController;
  +
  +  const _StepTwo({
       Key? key,
  +    required this.primaryController,
  +    required this.secondaryController,
  +    required this.tokenController,
     }) : super(key: key);
  +
  +  @override
  +  State<_StepTwo> createState() => _StepTwoState();
  +}
  +
  +class _StepTwoState extends State<_StepTwo> {
  +  bool _primaryValid = true;
  +  bool _secondaryValid = true;
  +  bool _tokenValid = true;
  +  final _primaryFocus = FocusNode();
  +  final _secondaryFocus = FocusNode();
  +  final _tokenFocus = FocusNode();
   
     @override
     Widget build(BuildContext context) {
  
positive.code: 
    @override
    Widget build(BuildContext context) {
      return const ServerRegistrationView();
    }
  }
  
  
negative.code:           ),
            const Gap(8),
            TextFormField(
              controller: widget.primaryController,
              focusNode: _primaryFocus,
              autocorrect: false,
              decoration: InputDecoration(
                labelText:
                    'Primary Connection Address${!_primaryValid ? '*' : ''}',
                labelStyle: TextStyle(
                  color: _primaryValid
                      ? Theme.of(context).inputDecorationTheme.labelStyle!.color
                      : Theme.of(context).colorScheme.error,
                ),
                floatingLabelStyle: TextStyle(
                  color: !_primaryValid
                      ? Theme.of(context).colorScheme.error
                      : _primaryFocus.hasFocus
                          ? Theme.of(context).colorScheme.secondary
                          : Theme.of(context)
                              .inputDecorationTheme
                              .enabledBorder!
                              .borderSide
                              .color,
                ),
              ),
              onTap: () {
                setState(() {
                  FocusScope.of(context).requestFocus(_primaryFocus);
                });
              },
              validator: (value) {
                bool validUrl = isURL(
                  value,
                  protocols: ['http', 'https'],
                  requireProtocol: true,
                );
  
                if (!validUrl) {
                  setState(() {
                    _primaryValid = false;
                  });
                  return 'Enter a valid URL format';
                }
                setState(() {
                  _primaryValid = true;
                });
                return null;
              },
            ),
            const Gap(16),
            TextFormField(
              controller: widget.secondaryController,
              focusNode: _secondaryFocus,
              autocorrect: false,
              decoration: InputDecoration(
                labelText:
                    'Secondary Connection Address${!_secondaryValid ? '*' : ''}',
                labelStyle: TextStyle(
                  color: _secondaryValid
                      ? Theme.of(context).inputDecorationTheme.labelStyle!.color
                      : Theme.of(context).colorScheme.error,
                ),
                floatingLabelStyle: TextStyle(
                  color: !_secondaryValid
                      ? Theme.of(context).colorScheme.error
                      : _secondaryFocus.hasFocus
                          ? Theme.of(context).colorScheme.secondary
                          : Theme.of(context)
                              .inputDecorationTheme
                              .enabledBorder!
                              .borderSide
                              .color,
                ),
                suffixIcon: ClipRRect(
                  borderRadius: BorderRadius.circular(50),
                  child: Material(
  