Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

RiperFish/Dev.io

6 stars
3 code files
View RiperFish/Dev.io on GitHub

composer.json

Open in GitHub
{
//
"require": {
//
"inertiajs/inertia-laravel": "^0.3.5"
},
//
}

app/Http/Controllers/BookmarkController.php

Open in GitHub
use App\Models\Bookmark;
use Inertia\Inertia;
 
class BookmarkController extends Controller
{
///
public function index()
{
$bookmarks = Bookmark::with('post')->where('user_id', auth()->id())->get();
return Inertia::render('Front/Bookmarks/Index', ['bookmarks' => $bookmarks]);
}
//
}

resources/js/Pages/Front/Bookmarks/Index.js

Open in GitHub
import React from 'react';
import { Inertia } from '@inertiajs/inertia'
import Authenticated from '@/Layouts/Authenticated';
import { InertiaLink } from '@inertiajs/inertia-react';
 
import NavLink from '@/Components/NavLink';
import Moment from 'react-moment';
import Pluralize from 'react-pluralize'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faHeart, faComment } from '@fortawesome/free-regular-svg-icons'
export default function Dashboard(props) {
var bookmarks = props.bookmarks
return (
<Authenticated
auth={props.auth}
errors={props.errors}
 
>
 
<div className="py-12">
<div className="max-w-7xl mx-auto sm:px-6 lg:px-8 ">
<h1 className="font-bold text-xl">Bookmarked posts : ({bookmarks.length})</h1>
<div className="flex">
<div className=" p-5 mr-5">
<InertiaLink href={route('tags.index')} >
<h1 className="mb-4 px-1 pt-1 font-light text-lg leading-5 text-gray-500 transition duration-150 ease-in-out">all tags</h1>
</InertiaLink>
{bookmarks.map((post) => (
 
post.post.tags.map((tag) => (
<InertiaLink key={tag.id} href={route('tags.show', { tag: tag })} >
<h1 className="mb-4 px-1 pt-1 font-light text-lg leading-5 text-gray-500 transition duration-150 ease-in-out">#{tag.name}</h1>
</InertiaLink>
))
 
))}
</div>
<div className="mx-5 rounded-3xl p-5 flex-1 border border-gray-200 bg-white my-3">
{bookmarks.map((post) => (
<div key={post.post.id} className="flex mb-8">
<div className="avatar w-8 h-8 rounded-full bg-green-300 mr-3"></div>
<div>
<InertiaLink href={route('posts.show', { post: post.post })} >
<h1 className="font-bold text-lg mb-1">{post.post.title}</h1>
</InertiaLink>
<div className="flex items-center">
<h2 className="font-bold text-sm text-gray-600 ">{post.post.user.name}</h2>
<div className="dot h-1 w-1 rounded-full bg-gray-500 mx-4"></div>
<p className=" text-sm text-gray-500"><Moment format="MMM D" withTitle>{post.post.created_at}</Moment> (<Moment fromNow>{post.post.created_at}</Moment>)</p>
<div className="dot h-1 w-1 rounded-full bg-gray-500 mx-4"></div>
{post.post.tags.map((tag) => (
<InertiaLink key={tag.id} href={route('tags.show', { tag: tag })} >
<h1 className="mr-2 text-sm text-gray-500">#{tag.name}</h1>
</InertiaLink>
))}
</div>
</div>
</div>
 
))}
</div>
</div>
 
 
</div>
</div>
</Authenticated >
);
}

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.