dashboard: restrict access to organization users
This commit is contained in:
46
apps/dashboard/src/components/dot.tsx
Normal file
46
apps/dashboard/src/components/dot.tsx
Normal file
@@ -0,0 +1,46 @@
|
||||
import { cn } from '@/utils/cn';
|
||||
|
||||
interface DotProps {
|
||||
className?: string;
|
||||
size?: number;
|
||||
animated?: boolean;
|
||||
}
|
||||
|
||||
function filterCn(filter: string[], className: string | undefined) {
|
||||
const split: string[] = className?.split(' ') || [];
|
||||
return split
|
||||
.filter((item) => !filter.some((filterItem) => item.startsWith(filterItem)))
|
||||
.join(' ');
|
||||
}
|
||||
|
||||
export function Dot({ className, size = 8, animated }: DotProps) {
|
||||
const style = {
|
||||
width: size,
|
||||
height: size,
|
||||
};
|
||||
return (
|
||||
<div
|
||||
className={cn(
|
||||
'relative',
|
||||
filterCn(['bg-', 'animate-', 'group-hover/row'], className)
|
||||
)}
|
||||
style={style}
|
||||
>
|
||||
<div
|
||||
className={cn(
|
||||
'absolute !m-0 rounded-full',
|
||||
animated !== false && 'animate-ping',
|
||||
className
|
||||
)}
|
||||
style={style}
|
||||
/>
|
||||
<div
|
||||
className={cn(
|
||||
'absolute !m-0 rounded-full',
|
||||
filterCn(['animate-', 'group-hover/row'], className)
|
||||
)}
|
||||
style={style}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user