mirror of
https://github.com/wasp-lang/open-saas.git
synced 2025-11-23 20:57:02 +01:00
reorganize admin dash (#227)
* reorganize admin dash * remove messages & ui stuff from admin * separate analytics from admin * update app_diff * Update .env.vault.diff
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
--- template/app/src/admin/dashboards/users/UsersTable.tsx
|
||||
+++ opensaas-sh/app/src/admin/dashboards/users/UsersTable.tsx
|
||||
@@ -9,8 +9,10 @@
|
||||
const [skip, setskip] = useState(0);
|
||||
const [page, setPage] = useState(1);
|
||||
const [email, setEmail] = useState<string | undefined>(undefined);
|
||||
+
|
||||
const [isAdminFilter, setIsAdminFilter] = useState<boolean | undefined>(undefined);
|
||||
const [statusOptions, setStatusOptions] = useState<SubscriptionStatus[]>([]);
|
||||
+ const [isDemoInfoVisible, setIsDemoInfoVisible] = useState(false);
|
||||
const { data, isLoading, error } = useQuery(getPaginatedUsers, {
|
||||
skip,
|
||||
emailContains: email,
|
||||
@@ -26,8 +28,42 @@
|
||||
setskip((page - 1) * 10);
|
||||
}, [page]);
|
||||
|
||||
+ useEffect(() => {
|
||||
+ try {
|
||||
+ if (localStorage.getItem('isDemoInfoVisible') === 'false') {
|
||||
+ // do nothing
|
||||
+ } else {
|
||||
+ setIsDemoInfoVisible(true);
|
||||
+ }
|
||||
+ } catch (error) {
|
||||
+ console.error(error);
|
||||
+ }
|
||||
+ }, []);
|
||||
+
|
||||
+ const handleDemoInfoClose = () => {
|
||||
+ try {
|
||||
+ localStorage.setItem('isDemoInfoVisible', 'false');
|
||||
+ setIsDemoInfoVisible(false);
|
||||
+ } catch (error) {
|
||||
+ console.error(error);
|
||||
+ }
|
||||
+ };
|
||||
+
|
||||
return (
|
||||
<div className='flex flex-col gap-4'>
|
||||
+ {/* Floating Demo Announcement */}
|
||||
+ {isDemoInfoVisible && (
|
||||
+ <div className='fixed z-999 bottom-0 mb-2 left-1/2 -translate-x-1/2 lg:mb-4 bg-gray-700 rounded-full px-3.5 py-2 text-sm text-white duration-300 ease-in-out hover:bg-gray-800 focus-visible:outline focus-visible:outline-2 focus-visible:outline-indigo-600'>
|
||||
+ <div className='px-4 flex flex-row gap-2 items-center my-1'>
|
||||
+ <span className='text-gray-100'>
|
||||
+ You are viewing mock user data only ;)
|
||||
+ </span>
|
||||
+ <button className=' pl-2.5 text-gray-400 text-xl font-bold' onClick={() => handleDemoInfoClose()}>
|
||||
+ X
|
||||
+ </button>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ )}
|
||||
<div className='rounded-sm border border-stroke bg-white shadow-default dark:border-strokedark dark:bg-boxdark'>
|
||||
<div className='flex-col flex items-start justify-between p-6 gap-3 w-full bg-gray-100/40 dark:bg-gray-700/50'>
|
||||
<span className='text-sm font-medium'>Filters:</span>
|
||||
Reference in New Issue
Block a user