blob: 1b04debc42b21ee34f64ceb1de973430b1ea402e [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/material.dart';
import 'package:lib.widgets/modular.dart';
import 'package:tictactoe_common/common.dart' show SquareState;
import '../model/tictactoe_model.dart';
@immutable
class Square extends StatelessWidget {
final int row, column;
const Square(this.row, this.column);
@override
Widget build(BuildContext context) {
return new ScopedModelDescendant<TicTacToeModel>(
builder: (context, child, model) {
return new Expanded(
child: new GestureDetector(
child: new Container(
decoration: new BoxDecoration(
border: new Border(
left: column == 1 ? new BorderSide() : BorderSide.none,
right: column == 1 ? new BorderSide() : BorderSide.none,
top: row == 1 ? new BorderSide() : BorderSide.none,
bottom: row == 1 ? new BorderSide() : BorderSide.none,
),
),
child: new Center(
child: new Text(
model.getSquareState(row, column) == SquareState.empty
? ' '
: model.getSquareState(row, column) == SquareState.x
? 'X'
: 'O',
style: new TextStyle(fontSize: 60.0),
),
),
),
onTap: () => model.playSquare(row, column),
),
);
},
);
}
}