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"