Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
7afc588
feat: search init
ahmedhgabr Oct 28, 2025
f5d5781
feat: slider base
ahmedhgabr Oct 28, 2025
f972072
feat: add flutter_svg and icon assets
tasneem-hakeem Oct 28, 2025
de8c65c
Merge remote-tracking branch 'origin/feature/search-screen' into feat…
tasneem-hakeem Oct 28, 2025
4f712b4
fix: assets path
ahmedhgabr Oct 28, 2025
9f7cfdf
feat: arrow icons
ahmedhgabr Oct 28, 2025
efa4f97
feat: range chip
ahmedhgabr Oct 28, 2025
7805448
feat: search screen price filter
ahmedhgabr Oct 28, 2025
fdc17b3
refactor: remove duplicate assets package
tasneem-hakeem Oct 29, 2025
34229e3
feat: filter bottomsheet init
ahmedhgabr Oct 29, 2025
ce0e612
Merge remote-tracking branch 'origin/develop' into feature/search-screen
tasneem-hakeem Oct 29, 2025
aa3f5af
Merge branch 'feature/search-screen' of https://github.com/Newyork-Sq…
ahmedhgabr Oct 29, 2025
f62d272
feat: custom chip for filter
ahmedhgabr Oct 30, 2025
c71961c
feat: filter by rate
ahmedhgabr Oct 30, 2025
c900fa1
feat: filter by rate to filter bottom sheet
ahmedhgabr Oct 30, 2025
ccbb1b5
refactor: control filter state from the bottom sheet
ahmedhgabr Oct 30, 2025
eabed4c
refactor: rename variable list
ahmedhgabr Oct 30, 2025
a7ba24e
feat: add services icons
ahmedhgabr Oct 30, 2025
f025382
fix: select all remove other choices
ahmedhgabr Oct 30, 2025
ec9849a
fix: only color filter on select
ahmedhgabr Oct 30, 2025
2045d45
feat: add services chips
ahmedhgabr Oct 30, 2025
8e8f894
feat: add filter button
tasneem-hakeem Oct 30, 2025
6dd12ac
refactor: use theme in range chip
ahmedhgabr Oct 30, 2025
8ba9f5b
Merge branch 'feature/search-screen' of https://github.com/Newyork-Sq…
ahmedhgabr Oct 30, 2025
5130c3c
feat: use theme in custom chip
ahmedhgabr Oct 31, 2025
d3f6aba
feat: primary button
ahmedhgabr Oct 31, 2025
fcdcec8
feat: secondary button
ahmedhgabr Oct 31, 2025
ca5428f
fix: use color theme
ahmedhgabr Oct 31, 2025
7d34cf9
feat: add paddings
ahmedhgabr Oct 31, 2025
129e49f
feat: base bottom sheet
ahmedhgabr Nov 1, 2025
1b81582
feat: wrap filter with base bottom sheet
ahmedhgabr Nov 1, 2025
3986ffd
fix: background color
ahmedhgabr Nov 2, 2025
bfa988d
feat: show bottom sheet with function
ahmedhgabr Nov 2, 2025
98f4126
feat: add search field widget
tasneem-hakeem Nov 2, 2025
d8896e3
feat: implement search screen layout
tasneem-hakeem Nov 2, 2025
d350cb5
feat: use theme colors for filter icon
tasneem-hakeem Nov 2, 2025
728607b
Merge remote-tracking branch 'origin/feature/search-screen' into feat…
tasneem-hakeem Nov 2, 2025
1da0171
feat: add on press functionality to filter button
tasneem-hakeem Nov 2, 2025
406eaa6
Merge branch 'develop' into feature/search-screen
ahmedhgabr Nov 27, 2025
3eb720b
feat: pass suggestions to search field
ahmedhgabr Nov 27, 2025
d7d066b
feat: search cubit init
ahmedhgabr Nov 27, 2025
6220b89
Merge branch 'develop' into feature/search-screen
ahmedhgabr Nov 28, 2025
6525c0f
fix: pass room id navigate
ahmedhgabr Nov 28, 2025
d6e2b7d
feat: show cards in search
ahmedhgabr Nov 28, 2025
1b0c222
feat: add search cubit in get it
ahmedhgabr Nov 28, 2025
ed1483d
fix: services labels
ahmedhgabr Nov 28, 2025
aec3cdf
feat: search titels
ahmedhgabr Nov 28, 2025
eb6c0c6
Merge branch 'develop' into feature/search-screen
ahmedhgabr Nov 28, 2025
9eb78e2
feat: use search use case in search cubit
ahmedhgabr Nov 28, 2025
d12f310
fix: init the screen loading
ahmedhgabr Nov 28, 2025
55a9c1e
feat: show either search results or most searched
ahmedhgabr Nov 28, 2025
0bb147d
fix: wrap with material
ahmedhgabr Nov 28, 2025
3489327
feat: search by name
ahmedhgabr Nov 28, 2025
b755630
Merge branch 'develop' into feature/search-screen
ahmedhgabr Nov 28, 2025
ec4ea37
fix: booking history error screen
ahmedhgabr Nov 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions assets/icons/arrow_up.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions assets/icons/arrow_up_right.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions assets/icons/cancel_circle.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions assets/icons/canvas.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions assets/icons/filter.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions assets/icons/plug.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions lib/di/injection.dart
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import 'package:share_space/domain/usecase/workspace/save_workspace.dart';
import 'package:share_space/presentation/screen/booking_history/state/booking_history_cubit.dart';
import 'package:share_space/presentation/screen/home/state/home_cubit.dart';
import 'package:share_space/presentation/screen/login/state/login_cubit.dart';
import 'package:share_space/presentation/screen/search/state/search_cubit.dart';
import 'package:shared_preferences/shared_preferences.dart';

import '../data/remote/auth_api_service_impl.dart';
Expand Down Expand Up @@ -164,6 +165,8 @@ Future<void> setupDependencies() async {

getIt.registerFactory(() => BookingCubit(getIt(),getIt()));

getIt.registerFactory(() => SearchCubit(getIt(), getIt()));

getIt.registerFactory<CreateAccountUseCase>(
() => CreateAccountUseCase(getIt()),
);
Expand Down
109 changes: 109 additions & 0 deletions lib/presentation/design_system/widget/base_bottom_sheet.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:share_space/presentation/design_system/theme/app_theme_provider.dart';

import '../theme/app_theme.dart';

class BaseBottomSheet extends StatefulWidget {
final Widget child;
final String label;
final Function() onClose;

const BaseBottomSheet({
super.key,
required this.child,
required this.label,
required this.onClose,
});

@override
State<BaseBottomSheet> createState() => _BaseBottomSheetState();
}

class _BaseBottomSheetState extends State<BaseBottomSheet> {
@override
Widget build(BuildContext context) {
return AppThemeProvider(
child: Container(
color: AppTheme.of(context).colors.surface,
child: Column(
children: [
Padding(
padding: EdgeInsetsGeometry.only(left: 16, right: 16, top: 24),
child: Column(
children: [
Row(
children: [
Text(
widget.label,
style: AppTheme.of(context)
.typography
.textTheme
.titleSmall
?.copyWith(
color: AppTheme.of(context).colors.title,
),
),
Expanded(child: SizedBox()),
SizedBox(
width: 20,
height: 20,
child: IconButton(
padding: EdgeInsets.zero,
alignment: Alignment.center,
icon: SvgPicture.asset(
'assets/icons/cancel_circle.svg',
),
onPressed: () {
widget.onClose();
Navigator.pop(context);
},
),
),
],
),
SizedBox(height: 12),
Divider(
color: AppTheme.of(context).colors.stroke,
thickness: 1,
height: 0,
),
],
),
),
widget.child,
],
),
),
);
}
}

Future<T?> showBaseBottomSheet<T>({
required BuildContext context,
required Widget child,
required String label,
required double height,
VoidCallback? onClose,
bool isScrollControlled = true,
}) {
return showModalBottomSheet<T>(
isScrollControlled: isScrollControlled,
context: context,
backgroundColor: AppTheme.of(context).colors.surface,
builder: (BuildContext context) {
return AppThemeProvider(
child: SafeArea(
child: SizedBox(
height: MediaQuery.of(context).size.height * height,
child: BaseBottomSheet(
label: label,
onClose: onClose ?? () {},
child: child,
),
),
),
);
},
);
}
Loading