Indev dashboard feed.

This commit is contained in:
Graphictoria 2022-05-11 20:51:25 -04:00
parent f0096f2e97
commit 8e2c838363
9 changed files with 805 additions and 666 deletions

View File

@ -18,6 +18,6 @@ class EmailVerificationPromptController extends Controller
{
return $request->user()->hasVerifiedEmail()
? redirect()->intended(RouteServiceProvider::HOME)
: view('auth.verify-email');
: view('web.auth.verify-email');
}
}

View File

@ -18,13 +18,13 @@ class VerifyEmailController extends Controller
public function __invoke(EmailVerificationRequest $request)
{
if ($request->user()->hasVerifiedEmail()) {
return redirect()->intended(RouteServiceProvider::HOME.'?verified=1');
return redirect()->intended(RouteServiceProvider::HOME);
}
if ($request->user()->markEmailAsVerified()) {
event(new Verified($request->user()));
}
return redirect()->intended(RouteServiceProvider::HOME.'?verified=1');
return redirect()->intended(RouteServiceProvider::HOME);
}
}

View File

@ -9,7 +9,7 @@ use Illuminate\Notifications\Notifiable;
use App\Notifications\ResetPasswordNotification;
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
class User extends Authenticatable implements MustVerifyEmail
{
use HasApiTokens, HasFactory, Notifiable;

1311
web/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -11,28 +11,28 @@
},
"devDependencies": {
"@babel/preset-react": "^7.16.7",
"@react-three/drei": "^9.6.0",
"@react-three/fiber": "^8.0.12",
"@tailwindcss/forms": "^0.4.0",
"alpinejs": "^3.4.2",
"autoprefixer": "^10.4.2",
"axios": "^0.25",
"@react-three/drei": "^9.7.1",
"@react-three/fiber": "^8.0.13",
"@tailwindcss/forms": "^0.4.1",
"alpinejs": "^3.10.2",
"autoprefixer": "^10.4.7",
"axios": "^0.25.0",
"bootstrap": "^5.1.3",
"jquery": "^3.6.0",
"laravel-mix": "^6.0.43",
"lodash": "^4.17.19",
"postcss": "^8.4.6",
"postcss-import": "^14.0.2",
"postcss": "^8.4.13",
"postcss-import": "^14.1.0",
"react": "^18.1.0",
"resolve-url-loader": "^5.0.0",
"sass": "^1.51.0",
"sass-loader": "^12.1.0",
"tailwindcss": "^3.0.18"
"sass-loader": "^12.6.0",
"tailwindcss": "^3.0.24"
},
"dependencies": {
"install": "^0.13.0",
"laravel-mix-banner": "^0.1.4",
"npm": "^8.8.0",
"npm": "^8.9.0",
"react-router-dom": "^6.3.0"
}
}

View File

@ -1,7 +1,6 @@
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
ErrorDocument 403 /index.php
RewriteEngine On
@ -9,13 +8,7 @@
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

View File

@ -1,15 +1,44 @@
// © XlXi 2021
// Graphictoria 5
import { useState, useRef } from 'react';
import { useState, useRef, useEffect } from 'react';
import { buildGenericApiUrl } from '../util/HTTP.js';
import Loader from './Loader';
let posts = [
{
postId: 0,
poster: {
type: "User",
name: "XlXi",
thumbnail: "https://www.gtoria.local/images/testing/headshot.png"
},
content: "test",
time: "Now"
},
{
postId: 1,
poster: {
type: "User",
name: "XlXi",
thumbnail: "https://www.gtoria.local/images/testing/headshot.png"
},
content: "test 2",
time: "Now"
}
];
const Feed = () => {
const inputRef = useRef();
const submitRef = useRef();
const feedRef = useRef();
const [feedLoaded, setFeedLoaded] = useState(false);
const [feedLoaded, setFeedLoaded] = useState(true);
const [mouseHover, setMouseHover] = useState(-1);
useEffect(() => {
});
return (
<>
@ -20,15 +49,44 @@ const Feed = () => {
<button ref={ submitRef } className="btn btn-secondary" type="submit">Share</button>
</div>
</div>
<div ref={ feedRef } className="d-flex">
{
feedLoaded ?
<h1>feed</h1>
:
<Loader />
(
posts.length > 0 ?
<div className="card d-flex">
{
posts.map(({ postId, poster, time, content }, index) =>
<>
<div className="row p-2" onMouseEnter={ () => setMouseHover(index) } onMouseLeave={ () => setMouseHover(-1) }>
<div className="col-3 col-sm-2 col-md-1">
<a href="#">
<img src={ poster.thumbnail } className="img-fluid border graphictora-user-circle" />
</a>
</div>
<div className="col-9 col-sm-10 col-md-11">
<div className="d-flex">
<a href="#" className="text-decoration-none fw-bold me-auto">{ poster.name } <i className="fa-solid fa-gavel"></i></a>
{ mouseHover == index ? <a href={ buildGenericApiUrl('www', `report/user-wall/${postId}`) } target="_blank" className="text-decoration-none link-danger me-2">Report <i className="fa-solid fa-circle-exclamation"></i></a> : null }
<p className="text-muted">{ time }</p>
</div>
<p>{ content }</p>
</div>
</div>
{ posts.length != (index+1) ? <hr className="m-0" /> : null }
</>
)
}
</div>
:
<div className="text-center mt-3">
<p className="text-muted">No posts were found. You could be the first!</p>
</div>
)
:
<div className="d-flex">
<Loader />
</div>
}
</>
);
};

View File

@ -2,7 +2,6 @@
// Graphictoria 5
import $ from 'jquery';
import * as Bootstrap from 'bootstrap';
import React from 'react';
import { render } from 'react-dom';

View File

@ -6,7 +6,7 @@
<div class="mb-4 graphictoria-home-shadow">
<h1 class="graphictoria-homepage-header">Graphictoria</h1>
{{-- TODO: make the user count automatic via a model --}}
<h5 class="mb-0">Graphictoria aims to revive the classic Roblox experience. Join <b>9k+</b> other users and relive your childhood!</h5>
<h5 class="mb-0">Graphictoria aims to revive the classic Roblox experience. Join <b>10k+</b> other users and relive your childhood!</h5>
<p class="graphictoria-homepage-fine-print fst-italic">* Graphictoria is not affiliated with, endorsed by, or sponsored by Roblox Corporation.</p>
</div>
<a href="{{ route('auth.register.index') }}" class="btn btn-success">Create your account<i class="ps-2 graphictoria-small-aligned-text fas fa-chevron-right"></i></a>