show only logged in instances
This commit is contained in:
parent
f0ba338bf6
commit
cb2cc99546
|
@ -49,12 +49,14 @@ class CreatePost extends HookWidget {
|
|||
final titleController = useTextEditingController();
|
||||
final bodyController = useTextEditingController();
|
||||
final accStore = useAccountsStore();
|
||||
final selectedInstance = useState(instanceUrl ?? accStore.instances.first);
|
||||
final selectedInstance =
|
||||
useState(instanceUrl ?? accStore.loggedInInstances.first);
|
||||
final selectedCommunity = useState(communityName);
|
||||
final showFancy = useState(false);
|
||||
final nsfw = useState(false);
|
||||
final delayed = useDelayedLoading();
|
||||
|
||||
// TODO: use drop down from AddAccountPage
|
||||
final instanceDropdown = InputDecorator(
|
||||
decoration: const InputDecoration(
|
||||
contentPadding: EdgeInsets.symmetric(vertical: 1, horizontal: 20),
|
||||
|
@ -63,7 +65,7 @@ class CreatePost extends HookWidget {
|
|||
child: DropdownButton<String>(
|
||||
value: selectedInstance.value,
|
||||
onChanged: (val) => selectedInstance.value = val,
|
||||
items: accStore.instances
|
||||
items: accStore.loggedInInstances
|
||||
.map((instance) => DropdownMenuItem(
|
||||
value: instance,
|
||||
child: Text(instance),
|
||||
|
@ -113,8 +115,6 @@ class CreatePost extends HookWidget {
|
|||
handleSubmit() async {
|
||||
final api = LemmyApi(selectedInstance.value).v1;
|
||||
|
||||
// TODO: this does not handle the case where this instance is added
|
||||
// but user is not logged in
|
||||
final token = accStore.defaultTokenFor(selectedInstance.value);
|
||||
|
||||
delayed.start();
|
||||
|
|
|
@ -133,7 +133,7 @@ abstract class _AccountsStore with Store {
|
|||
}
|
||||
|
||||
bool isAnonymousFor(String instanceUrl) => Computed(() {
|
||||
if (!users.containsKey(instanceUrl)) {
|
||||
if (!instances.contains(instanceUrl)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -141,11 +141,15 @@ abstract class _AccountsStore with Store {
|
|||
}).value;
|
||||
|
||||
@computed
|
||||
bool get hasNoAccount => users.values.every((e) => e.isEmpty);
|
||||
bool get hasNoAccount => loggedInInstances.isEmpty;
|
||||
|
||||
@computed
|
||||
Iterable<String> get instances => users.keys;
|
||||
|
||||
@computed
|
||||
Iterable<String> get loggedInInstances =>
|
||||
instances.where((e) => !isAnonymousFor(e));
|
||||
|
||||
/// adds a new account
|
||||
/// if it's the first account ever the account is
|
||||
/// set as default for the app
|
||||
|
|
|
@ -37,6 +37,13 @@ mixin _$AccountsStore on _AccountsStore, Store {
|
|||
(_$instancesComputed ??= Computed<Iterable<String>>(() => super.instances,
|
||||
name: '_AccountsStore.instances'))
|
||||
.value;
|
||||
Computed<Iterable<String>> _$loggedInInstancesComputed;
|
||||
|
||||
@override
|
||||
Iterable<String> get loggedInInstances => (_$loggedInInstancesComputed ??=
|
||||
Computed<Iterable<String>>(() => super.loggedInInstances,
|
||||
name: '_AccountsStore.loggedInInstances'))
|
||||
.value;
|
||||
|
||||
final _$usersAtom = Atom(name: '_AccountsStore.users');
|
||||
|
||||
|
@ -147,7 +154,8 @@ tokens: ${tokens},
|
|||
defaultUser: ${defaultUser},
|
||||
defaultToken: ${defaultToken},
|
||||
hasNoAccount: ${hasNoAccount},
|
||||
instances: ${instances}
|
||||
instances: ${instances},
|
||||
loggedInInstances: ${loggedInInstances}
|
||||
''';
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue