add join with link
This commit is contained in:
parent
d2f1340f75
commit
c9a4733fb6
5 changed files with 21 additions and 19 deletions
|
|
@ -1,3 +1 @@
|
|||
const String noClassCode = 'No class code!';
|
||||
|
||||
String? justInputtedCode;
|
||||
|
|
|
|||
|
|
@ -6,4 +6,5 @@ class PLocalKey {
|
|||
static const String paywallBackoff = 'paywallBackoff';
|
||||
static const String messagesSinceUpdate = 'messagesSinceLastUpdate';
|
||||
static const String completedActivities = 'completedActivities';
|
||||
static const String justInputtedCode = 'justInputtedCode';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ import 'dart:async';
|
|||
import 'dart:convert';
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:fluffychat/pangea/constants/class_code_constants.dart';
|
||||
import 'package:fluffychat/pangea/constants/local.key.dart';
|
||||
import 'package:fluffychat/pangea/constants/pangea_event_types.dart';
|
||||
import 'package:fluffychat/pangea/controllers/pangea_controller.dart';
|
||||
|
|
@ -51,16 +50,13 @@ class ClassController extends BaseController {
|
|||
);
|
||||
|
||||
if (classCode != null) {
|
||||
await _pangeaController.pStoreService.delete(
|
||||
PLocalKey.cachedClassCodeToJoin,
|
||||
isAccountData: false,
|
||||
);
|
||||
await joinClasswithCode(
|
||||
context,
|
||||
classCode,
|
||||
).onError(
|
||||
(error, stackTrace) =>
|
||||
SpaceCodeUtil.messageSnack(context, ErrorCopy(context, error).body),
|
||||
);
|
||||
await _pangeaController.pStoreService.delete(
|
||||
PLocalKey.cachedClassCodeToJoin,
|
||||
isAccountData: false,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -116,8 +112,13 @@ class ClassController extends BaseController {
|
|||
SpaceCodeUtil.messageSnack(context, L10n.of(context)!.alreadyInClass);
|
||||
return;
|
||||
} else {
|
||||
justInputtedCode = classCode;
|
||||
await _pangeaController.pStoreService.save(
|
||||
PLocalKey.justInputtedCode,
|
||||
classCode,
|
||||
isAccountData: false,
|
||||
);
|
||||
await client.joinRoomById(chosenClassId);
|
||||
_pangeaController.pStoreService.delete(PLocalKey.justInputtedCode);
|
||||
}
|
||||
|
||||
if (_pangeaController.matrixState.client.getRoomById(chosenClassId) ==
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
import 'package:adaptive_dialog/adaptive_dialog.dart';
|
||||
import 'package:fluffychat/config/themes.dart';
|
||||
import 'package:fluffychat/pages/chat_list/chat_list.dart';
|
||||
import 'package:fluffychat/pangea/constants/class_code_constants.dart';
|
||||
import 'package:fluffychat/pangea/constants/local.key.dart';
|
||||
import 'package:fluffychat/pangea/controllers/pangea_controller.dart';
|
||||
import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
|
@ -18,6 +19,7 @@ void chatListHandleSpaceTap(
|
|||
ChatListController controller,
|
||||
Room space,
|
||||
) {
|
||||
final PangeaController pangeaController = MatrixState.pangeaController;
|
||||
void setActiveSpaceAndCloseChat() {
|
||||
controller.setActiveSpace(space.id);
|
||||
|
||||
|
|
@ -106,10 +108,12 @@ void chatListHandleSpaceTap(
|
|||
(element) =>
|
||||
element.isSpace && element.membership == Membership.join,
|
||||
);
|
||||
final justInputtedCode = pangeaController.pStoreService
|
||||
.read(PLocalKey.justInputtedCode, isAccountData: false);
|
||||
if (rooms.any((s) => s.spaceChildren.any((c) => c.roomId == space.id))) {
|
||||
autoJoin(space);
|
||||
} else if (justInputtedCode != null &&
|
||||
space.classCode == justInputtedCode) {
|
||||
justInputtedCode == space.classCode) {
|
||||
// do nothing
|
||||
} else {
|
||||
showAlertDialog(context);
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
import 'package:fluffychat/pangea/constants/local.key.dart';
|
||||
import 'package:fluffychat/pangea/constants/url_query_parameter_keys.dart';
|
||||
import 'package:fluffychat/pangea/controllers/pangea_controller.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:sentry_flutter/sentry_flutter.dart';
|
||||
|
||||
import '../../../widgets/matrix.dart';
|
||||
import '../../constants/local.key.dart';
|
||||
|
||||
//if on home with classcode in url and not logged in, then save it soemhow and after llogin, join class automatically
|
||||
//if on home with classcode in url and logged in, then join class automatically
|
||||
class JoinClassWithLink extends StatefulWidget {
|
||||
|
|
@ -19,7 +18,7 @@ class JoinClassWithLink extends StatefulWidget {
|
|||
//PTODO - show class info in field so they know they're joining the right class
|
||||
class _JoinClassWithLinkState extends State<JoinClassWithLink> {
|
||||
String? classCode;
|
||||
final PangeaController _pangeaController = MatrixState.pangeaController;
|
||||
final PangeaController pangeaController = MatrixState.pangeaController;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
|
|
@ -39,8 +38,7 @@ class _JoinClassWithLinkState extends State<JoinClassWithLink> {
|
|||
);
|
||||
return;
|
||||
}
|
||||
|
||||
await _pangeaController.pStoreService.save(
|
||||
await pangeaController.pStoreService.save(
|
||||
PLocalKey.cachedClassCodeToJoin,
|
||||
classCode,
|
||||
isAccountData: false,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue