diff --git a/README.md b/README.md index 3d8073b..5284cc5 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Best feature is that, when the user clicks on any detail, respective app/web pag

Example Code for creating an entire page



-``` +```dart import 'package:contactus/contactus.dart'; import 'package:flutter/material.dart'; @@ -51,6 +51,13 @@ class MyApp extends StatelessWidget { tagLine: 'Flutter Developer', twitterHandle: 'AbhishekDoshi26', instagramUserName: '_abhishek_doshi', + customSocials: [ + CustomSocialField( + icon: const Icon(Icons.abc), + name: "Username", + url: "Profile Url", + ), + ], ), ), ); diff --git a/example/lib/main.dart b/example/lib/main.dart index a096d84..fdac7c4 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -1,4 +1,5 @@ import 'package:contactus/contactus.dart'; +import 'package:contactus/models/custom_field.dart'; import 'package:flutter/material.dart'; void main() => runApp(const MyApp()); @@ -37,6 +38,13 @@ class MyApp extends StatelessWidget { instagram: '_abhishek_doshi', facebookHandle: '_abhishek_doshi', tiktokUrl: "https://www.tiktok.com/@AbhishekDoshi26", + customSocials: [ + CustomSocialField( + icon: const Icon(Icons.abc), + name: "Username", + url: "Profile Url", + ), + ], ), ), ); diff --git a/example/pubspec.lock b/example/pubspec.lock index da24f8c..e0a7b74 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" url: "https://pub.dev" source: hosted - version: "2.10.0" + version: "2.11.0" boolean_selector: dependency: transitive description: @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: characters - sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.3.0" clock: dependency: transitive description: @@ -37,10 +37,10 @@ packages: dependency: transitive description: name: collection - sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0 + sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 url: "https://pub.dev" source: hosted - version: "1.17.0" + version: "1.17.2" contactus: dependency: "direct main" description: @@ -87,14 +87,6 @@ packages: description: flutter source: sdk version: "0.0.0" - js: - dependency: transitive - description: - name: js - sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7" - url: "https://pub.dev" - source: hosted - version: "0.6.5" lints: dependency: transitive description: @@ -107,34 +99,34 @@ packages: dependency: transitive description: name: matcher - sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72" + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.13" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.5.0" meta: dependency: transitive description: name: meta - sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42" + sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" url: "https://pub.dev" source: hosted - version: "1.8.0" + version: "1.9.1" path: dependency: transitive description: name: path - sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" url: "https://pub.dev" source: hosted - version: "1.8.2" + version: "1.8.3" plugin_platform_interface: dependency: transitive description: @@ -152,10 +144,10 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" stack_trace: dependency: transitive description: @@ -192,10 +184,10 @@ packages: dependency: transitive description: name: test_api - sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206 + sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" url: "https://pub.dev" source: hosted - version: "0.4.16" + version: "0.6.0" typicons_flutter: dependency: transitive description: @@ -276,6 +268,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + web: + dependency: transitive + description: + name: web + sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + url: "https://pub.dev" + source: hosted + version: "0.1.4-beta" sdks: - dart: ">=2.19.2 <3.0.0" + dart: ">=3.1.0-185.0.dev <4.0.0" flutter: ">=3.3.0" diff --git a/lib/contactus.dart b/lib/contactus.dart index dc3d1c3..f92737c 100644 --- a/lib/contactus.dart +++ b/lib/contactus.dart @@ -4,6 +4,8 @@ import 'package:flutter/material.dart'; import 'package:typicons_flutter/typicons_flutter.dart'; import 'package:url_launcher/url_launcher.dart'; +import 'models/custom_field.dart'; + ///Class for adding contact details/profile details as a complete new page in your flutter app. class ContactUs extends StatelessWidget { ///Logo of the Company/individual @@ -92,6 +94,10 @@ class ContactUs extends StatelessWidget { /// avatar radius will place the circularavatar according to developer/UI need final double? avatarRadius; + /// a list of [CustomSocialField] which can be used to add custom socials which are + /// not offered by default parameters + final List? customSocials; + ///Constructor which sets all the values. ContactUs({ required this.companyName, @@ -123,6 +129,7 @@ class ContactUs extends StatelessWidget { this.taglineFontWeight, this.avatarRadius, this.dividerThickness, + this.customSocials, }); showAlert(BuildContext context) { @@ -459,6 +466,30 @@ class ContactUs extends StatelessWidget { ), ), ), + ...(customSocials ?? []).map( + (e) => Card( + clipBehavior: Clip.antiAlias, + margin: EdgeInsets.symmetric( + vertical: 10.0, + horizontal: 25.0, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(50.0), + ), + color: cardColor, + child: ListTile( + leading: e.icon, + title: Text( + e.name, + style: TextStyle( + color: textColor, + fontFamily: textFont, + ), + ), + onTap: () => launchUrl(Uri.parse(e.url)), + ), + ), + ), ], ), ), diff --git a/lib/models/custom_field.dart b/lib/models/custom_field.dart new file mode 100644 index 0000000..63b698f --- /dev/null +++ b/lib/models/custom_field.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; + +class CustomSocialField { + final Icon icon; + final String name; + final String url; + + CustomSocialField({ + required this.icon, + required this.name, + required this.url, + }); +} diff --git a/lib/models/models.dart b/lib/models/models.dart new file mode 100644 index 0000000..5f3e019 --- /dev/null +++ b/lib/models/models.dart @@ -0,0 +1 @@ +export 'custom_field.dart'; diff --git a/pubspec.lock b/pubspec.lock index 75f5c77..4941337 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" url: "https://pub.dev" source: hosted - version: "2.10.0" + version: "2.11.0" boolean_selector: dependency: transitive description: @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: characters - sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.3.0" clock: dependency: transitive description: @@ -37,10 +37,10 @@ packages: dependency: transitive description: name: collection - sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0 + sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 url: "https://pub.dev" source: hosted - version: "1.17.0" + version: "1.17.2" fake_async: dependency: transitive description: @@ -64,46 +64,38 @@ packages: description: flutter source: sdk version: "0.0.0" - js: - dependency: transitive - description: - name: js - sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7" - url: "https://pub.dev" - source: hosted - version: "0.6.5" matcher: dependency: transitive description: name: matcher - sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72" + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.13" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.5.0" meta: dependency: transitive description: name: meta - sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42" + sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" url: "https://pub.dev" source: hosted - version: "1.8.0" + version: "1.9.1" path: dependency: transitive description: name: path - sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" url: "https://pub.dev" source: hosted - version: "1.8.2" + version: "1.8.3" plugin_platform_interface: dependency: transitive description: @@ -121,10 +113,10 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" stack_trace: dependency: transitive description: @@ -161,10 +153,10 @@ packages: dependency: transitive description: name: test_api - sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206 + sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" url: "https://pub.dev" source: hosted - version: "0.4.16" + version: "0.6.0" typicons_flutter: dependency: "direct main" description: @@ -245,6 +237,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + web: + dependency: transitive + description: + name: web + sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + url: "https://pub.dev" + source: hosted + version: "0.1.4-beta" sdks: - dart: ">=2.18.0 <3.0.0" + dart: ">=3.1.0-185.0.dev <4.0.0" flutter: ">=3.3.0"