mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2025-07-16 18:16:21 +00:00
143 lines
6.5 KiB
Dart
143 lines
6.5 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
import 'package:flutter_svg/flutter_svg.dart';
|
|
import 'package:syncrow_app/features/devices/bloc/device_settings_bloc/device_scene_bloc.dart';
|
|
import 'package:syncrow_app/features/devices/bloc/device_settings_bloc/device_scene_event.dart';
|
|
import 'package:syncrow_app/features/devices/bloc/device_settings_bloc/device_scene_state.dart';
|
|
import 'package:syncrow_app/features/devices/model/question_model.dart';
|
|
import 'package:syncrow_app/features/shared_widgets/default_button.dart';
|
|
import 'package:syncrow_app/features/shared_widgets/default_container.dart';
|
|
import 'package:syncrow_app/features/shared_widgets/default_scaffold.dart';
|
|
import 'package:syncrow_app/features/shared_widgets/text_widgets/body_large.dart';
|
|
import 'package:syncrow_app/features/shared_widgets/text_widgets/body_medium.dart';
|
|
import 'package:syncrow_app/generated/assets.dart';
|
|
import 'package:syncrow_app/utils/resource_manager/color_manager.dart';
|
|
|
|
class QuestionPageSetting extends StatelessWidget {
|
|
final QuestionModel? questionModel;
|
|
final String? deviceId;
|
|
const QuestionPageSetting({super.key, this.questionModel, this.deviceId});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return DefaultScaffold(
|
|
title: 'FAQ',
|
|
child: BlocProvider(
|
|
create: (context) => DeviceSettingBloc(deviceId: deviceId!)
|
|
..add(const DeviceSettingInitial()),
|
|
child: BlocBuilder<DeviceSettingBloc, DeviceSettingState>(
|
|
builder: (context, state) {
|
|
final sensor = BlocProvider.of<DeviceSettingBloc>(context);
|
|
return state is DeviceSettingLoadingState
|
|
? const Center(
|
|
child: DefaultContainer(
|
|
width: 50,
|
|
height: 50,
|
|
child: CircularProgressIndicator()),
|
|
)
|
|
: Column(
|
|
children: [
|
|
DefaultContainer(
|
|
padding: const EdgeInsets.all(15),
|
|
child: Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
BodyLarge(
|
|
text: questionModel!.question,
|
|
fontSize: 22,
|
|
fontWeight: FontWeight.w400,
|
|
fontColor: ColorsManager.blackColor,
|
|
),
|
|
const SizedBox(
|
|
height: 15,
|
|
),
|
|
BodyMedium(
|
|
text: questionModel!.answer,
|
|
fontSize: 14,
|
|
fontWeight: FontWeight.w400,
|
|
fontColor: ColorsManager.secondaryTextColor,
|
|
),
|
|
],
|
|
),
|
|
),
|
|
SizedBox(
|
|
height: MediaQuery.of(context).size.height * 0.15,
|
|
),
|
|
Center(
|
|
child: SizedBox(
|
|
width: 180,
|
|
child: DefaultButton(
|
|
backgroundColor: sensor.isHelpful == true
|
|
? ColorsManager.grayColor
|
|
: ColorsManager.grayButtonColors,
|
|
borderRadius: 50,
|
|
onPressed: () {
|
|
sensor.add(
|
|
const ToggleHelpfulEvent(isHelpful: true));
|
|
},
|
|
child: Row(
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
SvgPicture.asset(
|
|
Assets.thumbUp,
|
|
fit: BoxFit.fill,
|
|
),
|
|
const SizedBox(
|
|
width: 10,
|
|
),
|
|
const BodyMedium(
|
|
text: 'Helpful',
|
|
fontSize: 12,
|
|
fontWeight: FontWeight.w400,
|
|
fontColor: ColorsManager.blackColor,
|
|
),
|
|
],
|
|
)),
|
|
),
|
|
),
|
|
const SizedBox(
|
|
height: 15,
|
|
),
|
|
Center(
|
|
child: SizedBox(
|
|
width: 180,
|
|
child: DefaultButton(
|
|
backgroundColor: sensor.isHelpful == false
|
|
? ColorsManager.grayColor
|
|
: ColorsManager.grayButtonColors,
|
|
borderRadius: 50,
|
|
onPressed: () {
|
|
sensor.add(
|
|
const ToggleHelpfulEvent(isHelpful: false));
|
|
},
|
|
child: Row(
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
SvgPicture.asset(
|
|
Assets.thumbDown,
|
|
fit: BoxFit.fill,
|
|
),
|
|
const SizedBox(
|
|
width: 10,
|
|
),
|
|
const BodyMedium(
|
|
text: 'Not Helpful',
|
|
fontSize: 12,
|
|
fontWeight: FontWeight.w400,
|
|
fontColor: ColorsManager.blackColor,
|
|
),
|
|
],
|
|
)),
|
|
),
|
|
),
|
|
],
|
|
);
|
|
},
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|