diff --git a/Modules/CircleXO/App/Http/Controllers/ProfileController.php b/Modules/CircleXO/App/Http/Controllers/ProfileController.php
index 27c33ab..7f2723c 100644
--- a/Modules/CircleXO/App/Http/Controllers/ProfileController.php
+++ b/Modules/CircleXO/App/Http/Controllers/ProfileController.php
@@ -198,6 +198,73 @@ public function updateInfo(Request $request)
return redirect()->back();
}
+ public function socialStore(Request $request)
+ {
+ $request->validate([
+ "name" => "required|string",
+ "link" => "required|string|url|max:255",
+ "label" => "required|string|max:255"
+ ]);
+
+ $account = auth('accounts')->user();
+ $social = $account->meta('social');
+ $social[] = [
+ 'name' => $request->get('name'),
+ 'link' => $request->get('link'),
+ 'label' => $request->get('label'),
+ ];
+ $account->meta('social', $social);
+
+ Toast::success('Social account added successfully')->autoDismiss(2);
+ return redirect()->back();
+ }
+
+ public function socialEdit($network)
+ {
+ $network = collect(auth('accounts')->user()->meta('social'))->where('name', $network)->first();
+ return view('circle-xo::profile.edit.social-edit', compact('network'));
+ }
+
+ public function socialUpdate(Request $request, $network)
+ {
+ $request->validate([
+ "name" => "required|string",
+ "link" => "required|string|url|max:255",
+ "label" => "required|string|max:255"
+ ]);
+
+ $account = auth('accounts')->user();
+ $social = $account->meta('social');
+ foreach ($social as $key=>$item){
+ if($item['name'] === $network){
+ $social[$key] = [
+ 'name' => $request->get('name'),
+ 'link' => $request->get('link'),
+ 'label' => $request->get('label'),
+ ];
+ }
+ }
+ $account->meta('social', $social);
+
+ Toast::success('Social account updated successfully')->autoDismiss(2);
+ return redirect()->back();
+ }
+
+ public function socialDestroy(Request $request, $network)
+ {
+ $account = auth('accounts')->user();
+ $social = $account->meta('social');
+ foreach ($social as $key=>$item){
+ if($item['name'] === $network){
+ unset($social[$key]);
+ }
+ }
+ $account->meta('social', $social);
+
+ Toast::success('Social account removed successfully')->autoDismiss(2);
+ return redirect()->back();
+ }
+
public function updateMeta(Request $request)
{
$account = auth('accounts')->user();
diff --git a/Modules/CircleXO/App/Providers/CircleXOServiceProvider.php b/Modules/CircleXO/App/Providers/CircleXOServiceProvider.php
index 3a4332d..688fbf2 100644
--- a/Modules/CircleXO/App/Providers/CircleXOServiceProvider.php
+++ b/Modules/CircleXO/App/Providers/CircleXOServiceProvider.php
@@ -50,6 +50,8 @@ public function registerComponents(): void
\Modules\CircleXO\App\View\Components\Logo::class,
\Modules\CircleXO\App\View\Components\ListingCard::class,
\Modules\CircleXO\App\View\Components\ListingFilterItem::class,
+ \Modules\CircleXO\App\View\Components\SocialItem::class,
+ \Modules\CircleXO\App\View\Components\SocialLinks::class,
]);
}
diff --git a/Modules/CircleXO/App/View/Components/SocialItem.php b/Modules/CircleXO/App/View/Components/SocialItem.php
new file mode 100644
index 0000000..ebe444b
--- /dev/null
+++ b/Modules/CircleXO/App/View/Components/SocialItem.php
@@ -0,0 +1,28 @@
+
@if(auth('accounts')->user()->meta('social'))
- @foreach(auth('accounts')->user()->meta('social') as $social)
-
-