Skip to content

Commit

Permalink
starter pack list setup
Browse files Browse the repository at this point in the history
  • Loading branch information
leo-lox committed Dec 6, 2024
1 parent b25b02d commit c31ecbd
Show file tree
Hide file tree
Showing 4 changed files with 123 additions and 92 deletions.
8 changes: 7 additions & 1 deletion lib/presentation_layer/components/generic_feed.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,14 @@ class GenericFeed extends ConsumerStatefulWidget {
final List<Widget> Function(BuildContext, bool)? customHeaderSliverBuilder;
final bool floatHeaderSlivers;

final List<Widget> additionalTabViews;

const GenericFeed({
super.key,
this.customHeaderSliverBuilder,
this.floatHeaderSlivers = false,
required this.feedFilter,
this.additionalTabViews = const [],
});

@override
Expand Down Expand Up @@ -81,7 +84,9 @@ class _GenericFeedState extends ConsumerState<GenericFeed> {
ref.watch(genericFeedStateProvider(widget.feedFilter).notifier);

return DefaultTabController(
length: 2, // Two tabs for Posts and Posts with Replies
length: 2 +
widget.additionalTabViews
.length, // Two tabs for Posts and Posts with Replies
child: NestedScrollView(
floatHeaderSlivers: widget.floatHeaderSlivers,
controller: _scrollController,
Expand Down Expand Up @@ -154,6 +159,7 @@ class _GenericFeedState extends ConsumerState<GenericFeed> {
),
],
),
...widget.additionalTabViews,
],
),
),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import 'package:flutter/src/widgets/framework.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';

import '../../../config/palette.dart';

class StarterPacksList extends ConsumerWidget {
final String pubkey;

const StarterPacksList({
super.key,
required this.pubkey,
});

@override
Widget build(BuildContext context, WidgetRef ref) {
return Container(
color: Palette.purple,
child: Text("test"),
);
}
}
179 changes: 91 additions & 88 deletions lib/presentation_layer/routes/nostr/profile/profile_page_2.dart
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import '../../../atoms/follow_button.dart';
import '../../../atoms/my_profile_picture.dart';
import '../../../atoms/nip_05_text.dart';
import '../../../components/generic_feed.dart';
import '../../../components/starter_packs_list/starter_packs_list.dart';
import '../../../providers/event_signer_provider.dart';
import '../../../providers/following_provider.dart';
import '../../../providers/metadata_provider.dart';
Expand All @@ -36,100 +37,102 @@ class ProfilePage2 extends ConsumerWidget {
Widget build(BuildContext context, ref) {
final myMetadata = ref.watch(metadataStateProvider(pubkey)).userMetadata;

return DefaultTabController(
length: 2,
child: Scaffold(
backgroundColor: Palette.background,
body: GenericFeed(
feedFilter: FeedFilter(
authors: [pubkey],
kinds: [1, 6],
feedId: 'profile-${pubkey.substring(10, 20)}',
return Scaffold(
backgroundColor: Palette.background,
body: GenericFeed(
additionalTabViews: [
StarterPacksList(
pubkey: pubkey,
),
customHeaderSliverBuilder:
(BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
SliverOverlapAbsorber(
handle:
NestedScrollView.sliverOverlapAbsorberHandleFor(context),
sliver: SliverAppBar(
surfaceTintColor: Palette.background,
leading: BackButtonRound(),
actions: [
PopupMenuButton<String>(
color: Palette.extraDarkGray,
tooltip: "More",
onSelected: (e) => {
//log(e),
// toast
if (e == "block")
{
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
BlockPage(userPubkey: pubkey),
),
).then((value) => {
Navigator.pop(context),
})
}
},
itemBuilder: (BuildContext context) {
return {'block'}.map((String choice) {
return PopupMenuItem<String>(
value: choice,
child: Text(choice),
);
}).toList();
},
),
],
expandedHeight: 400,
pinned: true,
floating: true,
forceElevated: innerBoxIsScrolled,
backgroundColor: Palette.black, // Add a background color
flexibleSpace: FlexibleSpaceBar(
background: _BuildProfileHeader(
userMetadata: UserMetadata(
pubkey: pubkey,
eventId: '',
lastFetch: myMetadata?.lastFetch ?? 0,
name: myMetadata?.name,
picture: myMetadata?.picture,
banner: myMetadata?.banner,
nip05: myMetadata?.nip05,
about: myMetadata?.about,
website: myMetadata?.website,
lud06: myMetadata?.lud06,
lud16: myMetadata?.lud16,
)),
],
feedFilter: FeedFilter(
authors: [pubkey],
kinds: [1, 6],
feedId: 'profile-${pubkey.substring(10, 20)}',
),
customHeaderSliverBuilder:
(BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
SliverOverlapAbsorber(
handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context),
sliver: SliverAppBar(
surfaceTintColor: Palette.background,
leading: BackButtonRound(),
actions: [
PopupMenuButton<String>(
color: Palette.extraDarkGray,
tooltip: "More",
onSelected: (e) => {
//log(e),
// toast
if (e == "block")
{
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
BlockPage(userPubkey: pubkey),
),
).then((value) => {
Navigator.pop(context),
})
}
},
itemBuilder: (BuildContext context) {
return {'block'}.map((String choice) {
return PopupMenuItem<String>(
value: choice,
child: Text(choice),
);
}).toList();
},
),
bottom: PreferredSize(
preferredSize: Size.fromHeight(48),
child: Container(
color: Palette
.black, // Add a background color to the tab bar
child: TabBar(
tabs: [
Tab(text: 'Posts'),
Tab(text: 'Posts & Replies'),
],
labelColor: Palette
.lightGray, // Set the color of the selected tab
unselectedLabelColor:
Colors.grey, // Set the color of unselected tabs
indicatorColor:
Colors.blue, // Set the color of the indicator
),
],
expandedHeight: 400,
pinned: true,
floating: true,
forceElevated: innerBoxIsScrolled,
backgroundColor: Palette.black, // Add a background color
flexibleSpace: FlexibleSpaceBar(
background: _BuildProfileHeader(
userMetadata: UserMetadata(
pubkey: pubkey,
eventId: '',
lastFetch: myMetadata?.lastFetch ?? 0,
name: myMetadata?.name,
picture: myMetadata?.picture,
banner: myMetadata?.banner,
nip05: myMetadata?.nip05,
about: myMetadata?.about,
website: myMetadata?.website,
lud06: myMetadata?.lud06,
lud16: myMetadata?.lud16,
)),
),
bottom: PreferredSize(
preferredSize: Size.fromHeight(48),
child: Container(
color:
Palette.black, // Add a background color to the tab bar
child: TabBar(
tabs: [
Tab(text: 'Posts'),
Tab(text: 'Posts & Replies'),
Tab(text: 'Starter Packs'),
],
labelColor: Palette
.lightGray, // Set the color of the selected tab
unselectedLabelColor:
Colors.grey, // Set the color of unselected tabs
indicatorColor:
Colors.blue, // Set the color of the indicator
),
),
),
),
];
},
),
),
];
},
),
);
}
Expand Down
6 changes: 3 additions & 3 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -906,21 +906,21 @@ packages:
path: "../ndk/packages/ndk"
relative: true
source: path
version: "0.1.3"
version: "0.2.0-dev001"
ndk_amber:
dependency: "direct main"
description:
path: "../ndk/packages/amber"
relative: true
source: path
version: "0.1.3"
version: "0.2.0-dev001"
ndk_rust_verifier:
dependency: "direct main"
description:
path: "../ndk/packages/rust_verifier"
relative: true
source: path
version: "0.1.3"
version: "0.2.0-dev001"
node_preamble:
dependency: transitive
description:
Expand Down

0 comments on commit c31ecbd

Please sign in to comment.