blob: 7ffba1aef18520fa3d4a4184ab84965ac7bc2235 [file] [log] [blame]
// Copyright 2015 The Vanadium 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 '../stores/store.dart';
import 'syncslides_page.dart';
class AskQuestionPage extends SyncSlidesPage {
final String _deckId;
final int _currSlideNum;
AskQuestionPage(this._deckId, this._currSlideNum);
@override
Widget build(BuildContext context, AppState appState, AppActions appActions) {
if (!appState.decks.containsKey(_deckId)) {
// TODO(aghassemi): Proper error page with navigation back to main view.
return new Text('Deck no longer exists.');
}
var deckState = appState.decks[_deckId];
var presentationState = deckState.presentation;
if (presentationState == null) {
// TODO(aghassemi): Proper error page with navigation back to main view.
return new Text('Not in a presentation.');
}
// TODO(aghassemi): Switch to multi-line input when support is added.
// https://github.com/flutter/flutter/issues/627
var input = new Input(
labelText: 'Your question',
autofocus: true,
onSubmitted: (InputValue questionText) async {
await appActions.askQuestion(
deckState.deck.key, _currSlideNum, questionText.text);
// TODO(aghassemi): Add a 'Question submitted.' toast on the parent page.
// Blocked on https://github.com/flutter/flutter/issues/608
Navigator.pop(context);
});
var view = new Row(
children: [input], crossAxisAlignment: CrossAxisAlignment.stretch);
return new Scaffold(
appBar: new AppBar(
leading: new IconButton(
icon: Icons.arrow_back,
onPressed: () => Navigator.pop(context)),
title: new Text('Ask a question')),
body: new Material(child: view));
}
}