seatsio_flutter 3.1.0
seatsio_flutter: ^3.1.0 copied to clipboard
-> The official Seats.io Flutter SDK
Seats.io Flutter SDK #
Introduction #
seatsio-flutter allows rendering seats.io seating charts inside a Flutter application.
Usage #
Installation #
Add seatsio_flutter as a dependency in your pubspec.yaml file.
Minimal #
import 'package:flutter/material.dart';
import 'package:seatsio_flutter/seatsio_flutter.dart';
class Example extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Minimal example")),
body: SeatsioSeatingChart(
config: SeatingChartConfig((b) => b
..workspaceKey = "<your workspace key>"
..event = "<your event key>")));
}
}
Using sessions #
import 'package:flutter/material.dart';
import 'package:seatsio_flutter/seatsio_flutter.dart';
class Example extends StatelessWidget {
@override
Widget build(BuildContext context) {
final onSessionInitialized =
(HoldToken token) => print("session initialized - ${token.token} - ${token.expiresAt}");
return Scaffold(
appBar: AppBar(title: Text("Minimal example")),
body: SeatsioSeatingChart(
config: SeatingChartConfig((b) => b
..workspaceKey = "<your workspace key>"
..event = "<your event key>"
..session = Session.cont
..onSessionInitialized = onSessionInitialized
)));
}
}
onObjectSelected and onObjectDeselected #
import 'package:flutter/material.dart';
import 'package:seatsio_flutter/seatsio_flutter.dart';
class Example extends StatelessWidget {
@override
Widget build(BuildContext context) {
final onObjectSelected = (SeatsioObject object, SelectedTicketType? ticketType) =>
print("object selected - ${object.label}");
final onObjectDeselected = (SeatsioObject object, SelectedTicketType? deselectedTicketType) =>
print("object deselected - ${object.label}");
return Scaffold(
appBar: AppBar(title: Text("Minimal example")),
body: SeatsioSeatingChart(
config: SeatingChartConfig((b) => b
..workspaceKey = "<your workspace key>"
..event = "<your event key>"
..onObjectSelected = onObjectSelected
..onObjectDeselected = onObjectDeselected
)));
}
}
Pricing #
import 'package:flutter/material.dart';
import 'package:seatsio_flutter/seatsio_flutter.dart';
class Example extends StatelessWidget {
@override
Widget build(BuildContext context) {
final priceFormatter = (num price) => "€${price.toStringAsFixed(2)}";
final pricing = [
Pricing(
category: "Stalls",
ticketTypes: [
TicketType(ticketType: "adult", price: 40),
TicketType(ticketType: "child", price: 30, label: "For children"),
TicketType(ticketType: "65+", price: 25, label: "For senior citizens"),
],
),
Pricing(category: "Belcony", price: 50),
];
return Scaffold(
appBar: AppBar(title: Text("Minimal example")),
body: SeatsioSeatingChart(
config: SeatingChartConfig((b) => b
..workspaceKey = "<your workspace key>"
..event = "<your event key>"
..pricing = pricing
..priceFormatter = priceFormatter
)));
}
}
Unsupported features #
- Renderer prompts API
- Event manager
Development #
regenerating .g.dart files #
dart run build_runner build
Running the example on macOS #
cd example
open -a Simulator
flutter pub get
flutter run
Running the example on an Android Emulator #
cd example
emulator -list-avds
emulator -avd <avd_name>
flutter devices
flutter run -d <device_id>
Running the example on flutter-Web #
Not supported
Releasing #
- Run https://github.com/seatsio/seatsio-flutter/actions/workflows/bumpVersion.yml
- Run https://github.com/seatsio/seatsio-flutter/actions/workflows/publish.yml on the tag that was just created
Credits #
This SDK was inspired by https://github.com/SongJiaqiang/seatsio-flutter.