serverpod_tui 0.1.0-rc.1 copy "serverpod_tui: ^0.1.0-rc.1" to clipboard
serverpod_tui: ^0.1.0-rc.1 copied to clipboard

A collection of tools for building terminal user interfaces.

example/example.dart

import 'package:serverpod_tui/serverpod_tui.dart';

import 'screens/loading_screen.dart';
import 'screens/main_screen.dart';
import 'package:nocterm/nocterm.dart';

enum Screen { loading, main }

void main() {
  runTuiApp(const Counter());
}

class Counter extends StatefulComponent {
  const Counter({super.key});

  @override
  State<Counter> createState() => _CounterState();
}

class _CounterState extends State<Counter> with TickerProviderStateMixin {
  Screen _screen = .loading;

  @override
  Component build(BuildContext context) {
    Component screenComponent;
    switch (_screen) {
      case Screen.loading:
        screenComponent = LoadingScreen();
      case Screen.main:
        screenComponent = MainScreen();
    }

    return Focusable(
      focused: true,
      onKeyEvent: (event) {
        if (event.logicalKey == LogicalKey.space) {
          setState(() {
            final nextIndex = (_screen.index + 1) % Screen.values.length;
            _screen = Screen.values[nextIndex];
          });
          return true;
        }
        return false;
      },
      child: screenComponent,
    );
  }
}
0
likes
0
points
14.6k
downloads

Publisher

verified publisherserverpod.dev

Weekly Downloads

A collection of tools for building terminal user interfaces.

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

cli_tools, collection, intl, meta, nocterm, path, serverpod_shared, stream_transform

More

Packages that depend on serverpod_tui