Skip to content

Commit e3a9d7a

Browse files
committed
Merge branch 'develop'
2 parents 10161d9 + 93f192c commit e3a9d7a

File tree

82 files changed

+2270
-157
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+2270
-157
lines changed

Diff for: .gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,5 @@ notes.txt
3131
.flutter-plugins
3232
lib/generated_plugin_registrant.dart
3333
.DS_Store
34+
ios/Flutter/flutter_export_environment.sh
35+
ios/Flutter/Generated.xcconfig

Diff for: LINKS.md

+19

Diff for: README.md

+3

Diff for: assets/images/dsktp.png

15.6 KB

Diff for: assets/images/dsktp_3d.png

179 KB

Diff for: assets/images/dsktp_c_macos.jpg

157 KB

Diff for: assets/images/dsktp_dart_ffi.jpg

22.8 KB

Diff for: assets/images/dsktp_plugin.png

163 KB

Diff for: assets/images/dsktp_v_darkmode.png

16.7 KB

Diff for: assets/images/dsktp_v_lc.png

238 KB

Diff for: assets/images/dsktp_v_pass.png

31.5 KB

Diff for: assets/images/ntv_ar.png

216 KB

Diff for: assets/images/ntv_as.png

74.6 KB

Diff for: assets/images/ntv_aws.png

497 KB

Diff for: assets/images/ntv_backdrp.png

172 KB

Diff for: assets/images/ntv_crash.png

188 KB

Diff for: assets/images/ntv_cupert.png

158 KB

Diff for: assets/images/ntv_df.png

114 KB

Diff for: assets/images/ntv_f_day.png

16 KB

Diff for: assets/images/ntv_gql.png

99.3 KB

Diff for: assets/images/ntv_gt.png

187 KB

Diff for: assets/images/ntv_maps.png

655 KB

Diff for: assets/images/ntv_moor.png

282 KB

Diff for: assets/images/ntv_ones.png

92 KB

Diff for: assets/images/ntv_orient.png

141 KB

Diff for: assets/images/ntv_prov_streams.png

82.3 KB

Diff for: assets/images/ntv_provider.png

271 KB

Diff for: assets/images/ntv_rekog.png

92.8 KB

Diff for: assets/images/ntv_sc.png

99.9 KB

Diff for: assets/images/ntv_services.png

184 KB

Diff for: assets/images/ntv_shapeborder.png

226 KB

Diff for: assets/images/ntv_sockets.png

147 KB

Diff for: assets/images/ntv_sprite.png

124 KB

Diff for: assets/images/ntv_stripe.png

664 KB

Diff for: assets/images/ntv_tab.png

188 KB

Diff for: assets/images/ntv_table.png

228 KB

Diff for: assets/images/ntv_testing_provider.png

207 KB

Diff for: assets/images/ntv_upload.png

714 KB

Diff for: assets/images/ntv_wa_t.png

112 KB

Diff for: assets/images/ntv_webview.png

113 KB

Diff for: assets/images/ntv_wi.png

224 KB

Diff for: assets/images/ntv_yt.png

173 KB

Diff for: assets/wasm/ops.wasm

106 Bytes
Binary file not shown.

Diff for: ios/Flutter/Generated.xcconfig

-14
This file was deleted.

Diff for: ios/Flutter/flutter_export_environment.sh

-15
This file was deleted.

Diff for: lib/app_level/assets/assets.dart

+58
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,62 @@ class WebAssets {
3333
/* Game Time */
3434
static const enemy = AssetImage('assets/images/virus/enemy.png');
3535
static const gameBg = AssetImage('assets/images/bg/room.png');
36+
37+
/* Wasm */
38+
static const wasmOps = 'assets/wasm/ops.wasm';
39+
}
40+
41+
class DesktopAssets {
42+
DesktopAssets._();
43+
44+
static const threeD = AssetImage('assets/images/dsktp_3d.png');
45+
static const ffi = AssetImage('assets/images/dsktp_dart_ffi.jpg');
46+
static const plugin = AssetImage('assets/images/dsktp_plugin.png');
47+
48+
static const darkModeVignette =
49+
AssetImage('assets/images/dsktp_v_darkmode.png');
50+
51+
static const liquidCardsVignette = AssetImage('assets/images/dsktp_v_lc.png');
52+
53+
static const boardingVignette = AssetImage('assets/images/dsktp_v_pass.png');
54+
static const dsktp = AssetImage('assets/images/dsktp.png');
55+
static const dsktpMacOSC = AssetImage('assets/images/dsktp_c_macos.jpg');
56+
}
57+
58+
class MobileAssets {
59+
MobileAssets._();
60+
61+
static const fday = AssetImage('assets/images/ntv_f_day.png');
62+
static const services = AssetImage('assets/images/ntv_services.png');
63+
static const sockets = AssetImage('assets/images/ntv_sockets.png');
64+
static const tab = AssetImage('assets/images/ntv_tab.png');
65+
static const testProv = AssetImage('assets/images/ntv_testing_provider.png');
66+
67+
static const aws = AssetImage('assets/images/ntv_aws.png');
68+
static const moor = AssetImage('assets/images/ntv_moor.png');
69+
static const provStreams = AssetImage('assets/images/ntv_prov_streams.png');
70+
static const prov = AssetImage('assets/images/ntv_provider.png');
71+
static const rekog = AssetImage('assets/images/ntv_rekog.png');
72+
73+
static const ar = AssetImage('assets/images/ntv_ar.png');
74+
static const asheet = AssetImage('assets/images/ntv_as.png');
75+
static const backdrop = AssetImage('assets/images/ntv_backdrp.png');
76+
static const crash = AssetImage('assets/images/ntv_crash.png');
77+
static const cupertino = AssetImage('assets/images/ntv_cupert.png');
78+
static const df = AssetImage('assets/images/ntv_df.png');
79+
static const gQL = AssetImage('assets/images/ntv_gql.png');
80+
static const gTranslation = AssetImage('assets/images/ntv_gt.png');
81+
static const gMaps = AssetImage('assets/images/ntv_maps.png');
82+
static const oneSignal = AssetImage('assets/images/ntv_ones.png');
83+
static const orientation = AssetImage('assets/images/ntv_orient.png');
84+
static const sControl = AssetImage('assets/images/ntv_sc.png');
85+
static const shapeBorder = AssetImage('assets/images/ntv_shapeborder.png');
86+
static const sprite = AssetImage('assets/images/ntv_sprite.png');
87+
static const stripe = AssetImage('assets/images/ntv_stripe.png');
88+
static const table = AssetImage('assets/images/ntv_table.png');
89+
static const upload = AssetImage('assets/images/upload.png');
90+
static const whatsapp = AssetImage('assets/images/ntv_wa_t.png');
91+
static const webview = AssetImage('assets/images/ntv_webview.png');
92+
static const widgetInspector = AssetImage('assets/images/ntv_wi.png');
93+
static const youTube = AssetImage('assets/images/ntv_yt.png');
3694
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import 'package:experiments_with_web/app_level/utilities/bloc/bloc_event_state.component.dart';
2+
3+
import 'package:flutter/material.dart';
4+
5+
import 'package:provider/provider.dart';
6+
7+
typedef AsyncBlocBuilder<BlocState> = Widget Function(
8+
BuildContext context, BlocState state);
9+
10+
class BlocBuilderProvider<BlocEvent, BlocState> extends StatelessWidget {
11+
/// Acts like a StreamBuilder
12+
///
13+
/// {@tool sample}
14+
///
15+
/// This snippet shows how to use a [BlocBuilderProvider].
16+
///
17+
/// ```dart
18+
/// final bloc = BlocProvider.of<TrackActionsBloc>(context);
19+
///
20+
/// BlocBuilderProvider<TrackActionsEvent, TrackActionsState>(
21+
/// bloc: bloc,
22+
/// builder: (context, state) {
23+
/// switch (state.state) {
24+
/// case States.loading:
25+
/// return const _Internal1();
26+
/// break;
27+
/// case States.ready:
28+
/// return const _Internal2();
29+
/// break;
30+
/// case States.finished:
31+
/// WidgetsBinding.instance.addPostFrameCallback((_) {
32+
/// final newRoute = MaterialPageRoute(
33+
/// builder: (BuildContext context) => _NewPage(bloc: bloc),
34+
/// );
35+
/// Navigator.of(context).push(newRoute);
36+
/// });
37+
/// // return const _Internal3();
38+
/// break;
39+
/// }
40+
/// return const SizedBox();
41+
/// },
42+
/// );
43+
/// ```
44+
/// {@end-tool}
45+
const BlocBuilderProvider({
46+
Key key,
47+
@required this.bloc,
48+
@required this.builder,
49+
}) : assert(builder != null),
50+
assert(bloc != null),
51+
super(key: key);
52+
53+
final BlocEventStateBase<BlocEvent, BlocState> bloc;
54+
final AsyncBlocBuilder<BlocState> builder;
55+
56+
@override
57+
Widget build(BuildContext context) {
58+
return StreamProvider<BlocState>.value(
59+
initialData: bloc.initState,
60+
value: bloc.state,
61+
child: Consumer<BlocState>(
62+
builder: (context, state, _) => builder(context, state),
63+
),
64+
);
65+
}
66+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import 'package:flutter/material.dart';
2+
3+
import 'package:provider/provider.dart' show Consumer, StreamProvider;
4+
5+
typedef WidgetBuilder<T> = Widget Function(BuildContext context, T model);
6+
7+
class CustomStreamBuilder<T> extends StatelessWidget {
8+
const CustomStreamBuilder({
9+
Key key,
10+
@required this.builder,
11+
@required this.stream,
12+
@required this.initialData,
13+
this.updateShouldNotify,
14+
}) : super(key: key);
15+
16+
final WidgetBuilder<T> builder;
17+
18+
final Stream<T> stream;
19+
20+
final T initialData;
21+
22+
final bool updateShouldNotify;
23+
24+
@override
25+
Widget build(BuildContext context) {
26+
if (updateShouldNotify != null && updateShouldNotify) {
27+
return StreamProvider<T>.value(
28+
initialData: initialData,
29+
value: stream,
30+
updateShouldNotify: (prev, old) => updateShouldNotify,
31+
child: Consumer<T>(
32+
builder: (context, state, _) => builder(context, state),
33+
),
34+
);
35+
}
36+
37+
return StreamProvider<T>.value(
38+
initialData: initialData,
39+
value: stream,
40+
child: Consumer<T>(
41+
builder: (context, state, _) => builder(context, state),
42+
),
43+
);
44+
}
45+
}

Diff for: lib/app_level/constants/constants.dart

+21
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'package:experiments_with_web/app_level/models/articles/articles.dart';
2+
import 'package:experiments_with_web/bloc_example/utilities/strings.dart';
23
import 'package:experiments_with_web/codepenz/utilities/constants.dart';
34
import 'package:experiments_with_web/data_table/utilities/constants.dart';
45
import 'package:experiments_with_web/game/utilities/constants.dart';
@@ -11,6 +12,7 @@ import 'package:experiments_with_web/parallax/utilities/constants.dart';
1112
import 'package:experiments_with_web/search/utils/constants.dart';
1213
import 'package:experiments_with_web/streams/utilities/constants.dart';
1314
import 'package:experiments_with_web/using_selector/utilities/constants.dart';
15+
import 'package:experiments_with_web/wasm/utils/strings.dart';
1416

1517
class ApplevelConstants {
1618
ApplevelConstants._();
@@ -25,6 +27,9 @@ class ApplevelConstants {
2527
static const String supportTitle = '🤗 Support!';
2628

2729
static const String homeRoute = '/';
30+
static const String favRoute = '/favs';
31+
static const String desktopRoute = '/desktop';
32+
static const String mobileRoute = '/mobile';
2833

2934
static const String sampleRoute = '/sample';
3035
static const String googleRoute = '/google-clone';
@@ -40,6 +45,8 @@ class ApplevelConstants {
4045
static const String selectorsRoute = '/selector';
4146
static const String visitedPagesRoute = '/pages-seen';
4247
static const String searchHistoryRoute = '/search-history';
48+
static const String wasmRoute = '/wasm';
49+
static const String githubSearchRoute = '/github-search';
4350

4451
/* MENU OPTIONS */
4552
static const String option1 = 'Sample';
@@ -56,6 +63,8 @@ class ApplevelConstants {
5663
static const String option12 = 'Selectors in Provider';
5764
static const String option13 = 'Navigation History';
5865
static const String option14 = 'Search History';
66+
static const String option15 = 'Wasm';
67+
static const String option16 = 'Git Search BLoC';
5968
}
6069

6170
class WHOLinks {
@@ -101,6 +110,8 @@ class OptionAndRoutes {
101110
ApplevelConstants.option2: ApplevelConstants.googleRoute,
102111
ApplevelConstants.option13: ApplevelConstants.visitedPagesRoute,
103112
ApplevelConstants.option14: ApplevelConstants.searchHistoryRoute,
113+
ApplevelConstants.option15: ApplevelConstants.wasmRoute,
114+
ApplevelConstants.option16: ApplevelConstants.githubSearchRoute,
104115
};
105116

106117
static const Map<String, List<String>> linksRoutes = {
@@ -174,6 +185,16 @@ class OptionAndRoutes {
174185
SearchHistoryConsts.website,
175186
SearchHistoryConsts.youtube
176187
],
188+
ApplevelConstants.option15: <String>[
189+
WasmStrings.medium,
190+
WasmStrings.website,
191+
WasmStrings.youtube
192+
],
193+
ApplevelConstants.option16: <String>[
194+
BrandLinks.medium,
195+
BrandLinks.website,
196+
BlocExampleStrings.youtube
197+
],
177198
};
178199
}
179200

Diff for: lib/app_level/routes/router.dart

+35
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
import 'package:experiments_with_web/app_level/constants/constants.dart';
2+
import 'package:experiments_with_web/bloc_example/views/bloc_example.view.dart';
23
import 'package:experiments_with_web/home/home.dart';
34
import 'package:experiments_with_web/codepenz/codepen.dart';
45
import 'package:experiments_with_web/data_table/data_table.dart';
56
import 'package:experiments_with_web/game/game.dart';
67
import 'package:experiments_with_web/google/google.dart';
8+
import 'package:experiments_with_web/home/screens/option_desktop.dart';
9+
import 'package:experiments_with_web/home/screens/option_fav.dart';
10+
import 'package:experiments_with_web/home/screens/option_mobile.dart';
711
import 'package:experiments_with_web/hooks/hooks.dart';
812
import 'package:experiments_with_web/iframe/iframe.dart';
913
import 'package:experiments_with_web/location/location.dart';
@@ -14,6 +18,7 @@ import 'package:experiments_with_web/sample/sample.dart';
1418
import 'package:experiments_with_web/search/search_history.dart';
1519
import 'package:experiments_with_web/streams/stream_form.dart';
1620
import 'package:experiments_with_web/using_selector/use_selector.dart';
21+
import 'package:experiments_with_web/wasm/wasm.dart';
1722

1823
import 'package:flutter/material.dart';
1924

@@ -28,6 +33,24 @@ class Router {
2833
name: ApplevelConstants.homeRoute,
2934
);
3035

36+
case ApplevelConstants.favRoute:
37+
return _NoAnimationMaterialPageRoute<dynamic>(
38+
builder: (_) => const OptionFav(),
39+
name: ApplevelConstants.favRoute,
40+
);
41+
42+
case ApplevelConstants.desktopRoute:
43+
return _NoAnimationMaterialPageRoute<dynamic>(
44+
builder: (_) => const OptionDesktop(),
45+
name: ApplevelConstants.desktopRoute,
46+
);
47+
48+
case ApplevelConstants.mobileRoute:
49+
return _NoAnimationMaterialPageRoute<dynamic>(
50+
builder: (_) => const OptionMobile(),
51+
name: ApplevelConstants.mobileRoute,
52+
);
53+
3154
case ApplevelConstants.googleRoute:
3255
return _NoAnimationMaterialPageRoute<dynamic>(
3356
builder: (_) => const GoogleCloneScreen(),
@@ -112,6 +135,18 @@ class Router {
112135
name: ApplevelConstants.searchHistoryRoute,
113136
);
114137

138+
case ApplevelConstants.wasmRoute:
139+
return _NoAnimationMaterialPageRoute<dynamic>(
140+
builder: (_) => const WasmScreen(),
141+
name: ApplevelConstants.wasmRoute,
142+
);
143+
144+
case ApplevelConstants.githubSearchRoute:
145+
return _NoAnimationMaterialPageRoute<dynamic>(
146+
builder: (_) => const BlocExampleScreen(),
147+
name: ApplevelConstants.githubSearchRoute,
148+
);
149+
115150
default:
116151
return _NoAnimationMaterialPageRoute<dynamic>(
117152
builder: (_) => const Home(),

0 commit comments

Comments
 (0)