diff --git a/app/Http/Controllers/PortfolioController.php b/app/Http/Controllers/PortfolioController.php new file mode 100644 index 0000000..79e3229 --- /dev/null +++ b/app/Http/Controllers/PortfolioController.php @@ -0,0 +1,27 @@ + + + +
+ + + + + + + + + + + + {{ $slot }} + + + + + +
+ +
+ + HTML; } } diff --git a/app/View/Components/GuestLayout.php b/app/View/Components/GuestLayout.php index 2ccc088..d0ff414 100644 --- a/app/View/Components/GuestLayout.php +++ b/app/View/Components/GuestLayout.php @@ -3,15 +3,24 @@ namespace App\View\Components; use Illuminate\View\Component; -use Illuminate\View\View; class GuestLayout extends Component { /** * Get the view / contents that represents the component. */ - public function render(): View + public function render() { - return view('layouts.guest-layout'); + return <<<'HTML' + + + + {{ $slot }} + + + + HTML; } } diff --git a/app/View/Components/CommonLayout.php b/app/View/Components/MainLayout.php similarity index 80% rename from app/View/Components/CommonLayout.php rename to app/View/Components/MainLayout.php index 543047f..a145423 100644 --- a/app/View/Components/CommonLayout.php +++ b/app/View/Components/MainLayout.php @@ -5,7 +5,7 @@ namespace App\View\Components; use Illuminate\View\Component; use Illuminate\View\View; -class CommonLayout extends Component +class MainLayout extends Component { public function __construct( @@ -18,6 +18,6 @@ class CommonLayout extends Component */ public function render(): View { - return view('layouts.common'); + return view('layouts.main-layout'); } } diff --git a/resources/views/layouts/app-layout.blade.php b/resources/views/layouts/app-layout.blade.php deleted file mode 100644 index aaad577..0000000 --- a/resources/views/layouts/app-layout.blade.php +++ /dev/null @@ -1,25 +0,0 @@ - - - -
- - - - - - - - - - - - {{ $slot }} - - - - - -
- -
-
\ No newline at end of file diff --git a/resources/views/layouts/guest-layout.blade.php b/resources/views/layouts/guest-layout.blade.php deleted file mode 100644 index de84137..0000000 --- a/resources/views/layouts/guest-layout.blade.php +++ /dev/null @@ -1,9 +0,0 @@ - - - - {{ $slot }} - - - diff --git a/resources/views/layouts/common.blade.php b/resources/views/layouts/main-layout.blade.php similarity index 96% rename from resources/views/layouts/common.blade.php rename to resources/views/layouts/main-layout.blade.php index 7be61d9..ee33a4e 100644 --- a/resources/views/layouts/common.blade.php +++ b/resources/views/layouts/main-layout.blade.php @@ -1,4 +1,4 @@ -{{-- --}} + diff --git a/resources/views/livewire/portfolio/manage-portfolio-form.blade.php b/resources/views/livewire/manage-portfolio-form.blade.php similarity index 94% rename from resources/views/livewire/portfolio/manage-portfolio-form.blade.php rename to resources/views/livewire/manage-portfolio-form.blade.php index f539928..f3e7d3e 100644 --- a/resources/views/livewire/portfolio/manage-portfolio-form.blade.php +++ b/resources/views/livewire/manage-portfolio-form.blade.php @@ -43,7 +43,10 @@ new class extends Component { // $this->portfolio->owner_id = auth()->user()->id; $this->portfolio->save(); - $this->success('Portfolio updated', redirectTo: "/portfolio/{$this->portfolio->id}"); + $this->success('Portfolio updated'); + + $this->dispatch('portfolio-updated', $this->portfolio); + $this->dispatch('close-drawer'); } public function save() diff --git a/resources/views/livewire/portfolio/create.blade.php b/resources/views/livewire/portfolio/create.blade.php deleted file mode 100644 index 879d207..0000000 --- a/resources/views/livewire/portfolio/create.blade.php +++ /dev/null @@ -1,19 +0,0 @@ - -
- - - - -
diff --git a/resources/views/livewire/portfolio/show.blade.php b/resources/views/livewire/portfolio/show.blade.php deleted file mode 100644 index 3118269..0000000 --- a/resources/views/livewire/portfolio/show.blade.php +++ /dev/null @@ -1,223 +0,0 @@ -scope = $scope; - } - - public function getScopeName ($scope) - { - return collect($this->options)->where('id', $scope)['name']; - } - - public $options = [ - ['id' => '1M', 'name' => '1 month'], - ['id' => '3M', 'name' => '3 months'], - ['id' => 'YTD', 'name' => 'Year to date'], - ['id' => '1Y', 'name' => '1 year'], - ['id' => '3Y', 'name' => '3 years'], - ['id' => 'ALL', 'name' => 'All time'] - ]; - - public ?Portfolio $portfolio; - - private function generateDateSeries($startDate, $endDate) { - $dateArray = []; - $currentDate = strtotime($startDate); - $endDate = strtotime($endDate); - - while ($currentDate <= $endDate) { - // Generate a random integer - $randomInt = rand(1000, 3000); - - // Format the current date to 'Y-m-d' - $formattedDate = date('Y-m-d', $currentDate); - - // Append the date and random integer to the array - $dateArray[] = [$formattedDate, $randomInt]; - - // Move to the next day - $currentDate = strtotime("+1 day", $currentDate); - } - - return $dateArray; - } - - public array $myChart; - - public function mount() { - - $this->myChart = [ - 'series' => [ - [ - 'name' => 'Total Views', - 'data' => $this->generateDateSeries('2024-01-01', '2024-08-01') - ], - [ - 'name' => 'Second Views', - 'data' => $this->generateDateSeries('2024-01-01', '2024-08-01') - ], - ], - - ]; - - } -}; ?> - -
- - - - - - - - - - @if($portfolio->wishlist) - - @endif - - - - - - -
- -
- -

Performance

-
- -
- - - - - @foreach($options as $option) - - - - @endforeach - - - -
- -
- -
- -
- -
- - - - - - -
- -
- - - - @php - $users = App\Models\User::take(3)->get(); - @endphp - - @foreach($users as $user) - - @endforeach - - - - - - @php - $users = App\Models\User::take(3)->get(); - @endphp - - @foreach($users as $user) - - @endforeach - - - - - - @php - $users = App\Models\User::take(3)->get(); - @endphp - - @foreach($users as $user) - - @endforeach - - - - - - @php - $users = App\Models\User::take(3)->get(); - @endphp - - @foreach($users as $user) - - @endforeach - - - -
- -
\ No newline at end of file diff --git a/resources/views/portfolio/create.blade.php b/resources/views/portfolio/create.blade.php new file mode 100644 index 0000000..e47ac9b --- /dev/null +++ b/resources/views/portfolio/create.blade.php @@ -0,0 +1,8 @@ + +
+ + + + @livewire('manage-portfolio-form', ['submit' => 'save']) +
+
diff --git a/resources/views/portfolio/show.blade.php b/resources/views/portfolio/show.blade.php new file mode 100644 index 0000000..05ad78b --- /dev/null +++ b/resources/views/portfolio/show.blade.php @@ -0,0 +1,227 @@ +scope = $scope; + } + + public function getScopeName ($scope) + { + return collect($this->options)->where('id', $scope)['name']; + } + + public $options = [ + ['id' => '1M', 'name' => '1 month'], + ['id' => '3M', 'name' => '3 months'], + ['id' => 'YTD', 'name' => 'Year to date'], + ['id' => '1Y', 'name' => '1 year'], + ['id' => '3Y', 'name' => '3 years'], + ['id' => 'ALL', 'name' => 'All time'] + ]; + + public ?Portfolio $portfolio; + + private function generateDateSeries($startDate, $endDate) { + $dateArray = []; + $currentDate = strtotime($startDate); + $endDate = strtotime($endDate); + + while ($currentDate <= $endDate) { + // Generate a random integer + $randomInt = rand(1000, 3000); + + // Format the current date to 'Y-m-d' + $formattedDate = date('Y-m-d', $currentDate); + + // Append the date and random integer to the array + $dateArray[] = [$formattedDate, $randomInt]; + + // Move to the next day + $currentDate = strtotime("+1 day", $currentDate); + } + + return $dateArray; + } + + public array $myChart; + + public function mount() { + + $this->myChart = [ + 'series' => [ + [ + 'name' => 'Total Views', + 'data' => $this->generateDateSeries('2024-01-01', '2024-08-01') + ], + [ + 'name' => 'Second Views', + 'data' => $this->generateDateSeries('2024-01-01', '2024-08-01') + ], + ], + + ]; + + } +}; ?> + + +
+ + + + + + @livewire('manage-portfolio-form', ['portfolio' => $portfolio, 'submit' => "update", 'hideCancel' => true]) + + + + + + @if($portfolio->wishlist) + + @endif + + + + + + +
+ +
+ +

Performance

+
+ +
+{{-- {{ $scope }} --}} + + + + {{-- @foreach($options as $option) + + + + @endforeach --}} + + + +
+ +
+ {{-- --}} +
+ +
+ +
+ + + + + + +
+ +
+ + + + @php + $users = App\Models\User::take(3)->get(); + @endphp + + @foreach($users as $user) + + @endforeach + + + + + + @php + $users = App\Models\User::take(3)->get(); + @endphp + + @foreach($users as $user) + + @endforeach + + + + + + @php + $users = App\Models\User::take(3)->get(); + @endphp + + @foreach($users as $user) + + @endforeach + + + + + + @php + $users = App\Models\User::take(3)->get(); + @endphp + + @foreach($users as $user) + + @endforeach + + + +
+ +
+
\ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 90cc3b6..46945bf 100644 --- a/routes/web.php +++ b/routes/web.php @@ -2,6 +2,7 @@ use Livewire\Volt\Volt; use Illuminate\Support\Facades\Route; +use App\Http\Controllers\PortfolioController; Route::get('/', function () { return view('welcome'); @@ -11,7 +12,7 @@ Route::middleware(['auth:sanctum', config('jetstream.auth_session'), 'verified'] Volt::route('/dashboard', 'dashboard')->name('dashboard'); - Volt::route('/portfolio/create', 'portfolio.create')->name('portfolio.create'); - Volt::route('/portfolio/{portfolio}', 'portfolio.show')->name('portfolio.show'); + Route::get('/portfolio/create', [PortfolioController::class, 'create'])->name('portfolio.create'); + Route::get('/portfolio/{portfolio}', [PortfolioController::class, 'show'])->name('portfolio.show'); });