@heroicons/react/solid#SaveIcon TypeScript Examples
The following examples show how to use
@heroicons/react/solid#SaveIcon.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: FilesGrid.tsx From ide with Mozilla Public License 2.0 | 4 votes |
export default function FilesGrid(props: FilesGridProps): JSX.Element {
const firebaseUser = useAtomValue(firebaseUserAtom);
const formatCreationTime = (creationTime: number | null): string => {
if (!creationTime) return 'Unknown';
// return String(creationTime);
// if recent then display time ago
if (+dayjs() - +dayjs(creationTime) <= 1000 * 60 * 60 * 24 * 2)
// <= two days
return dayjs(creationTime).fromNow();
return dayjs(creationTime).format('MM/DD/YYYY'); // otherwise display date
};
return (
<div className="mt-4 -mx-2">
{props.files
.sort((a, b) => (a.creationTime ?? 0) - (b.creationTime ?? 0))
.reverse()
.map(file => (
<Link key={file.id} href={`/${file.id.substring(1)}`}>
<a className="bg-gray-800 hover:bg-gray-700 px-4 py-3 rounded-lg inline-block w-full max-w-sm m-2">
<div className="flex justify-between">
<div className="text-gray-200">
{file.title || 'Unnamed File'}
</div>
<button
onClick={e => {
e.preventDefault(); // not stopPropagation
if (!firebaseUser) {
alert('Firebase not loaded, please wait');
return;
}
const confirmed = confirm(
file.hidden ? 'Unhide this item?' : 'Hide this item?'
);
if (!confirmed) return;
if (confirmed) {
const ref = firebase
.database()
.ref('users')
.child(firebaseUser.uid)
.child(file.id);
ref.update({ hidden: !file.hidden });
}
}}
>
{file.hidden ? (
<SaveIcon
className="h-5 w-5 text-gray-400 hover:text-gray-500 focus:text-gray-500 focus:outline-none"
aria-hidden="true"
/>
) : (
<TrashIcon
className="h-5 w-5 text-gray-400 hover:text-gray-500 focus:text-gray-500 focus:outline-none"
aria-hidden="true"
/>
)}
</button>
</div>
<div className="text-gray-400">
Last Accessed: {dayjs(file.lastAccessTime).fromNow()}
</div>
<div className="text-gray-400">
Created: {formatCreationTime(file.creationTime)}
</div>
{props.showPerms ? (
<div className="text-gray-400">
Permissions:{' '}
{file.lastPermission &&
file.lastPermission in permissionLabels
? permissionLabels[file.lastPermission]
: 'Unknown'}
</div>
) : (
<div className="text-gray-400">
Default Permissions:{' '}
{file.lastDefaultPermission &&
file.lastDefaultPermission in sharingPermissionLabels
? sharingPermissionLabels[file.lastDefaultPermission]
: 'Unknown'}
</div>
)}
</a>
</Link>
))}
</div>
);
}