@@ -21,14 +21,15 @@ import {
21
21
TableRow ,
22
22
} from "@/components/ui/table" ;
23
23
24
- import { useState } from "react" ;
24
+ import { useMemo , useState } from "react" ;
25
25
26
26
import { DataTablePagination } from "./data-table-pagination" ;
27
27
28
28
import DataTableToolbar from "./data-table-toolbar" ;
29
29
30
30
import { Card } from "@/components/ui/card" ;
31
31
import { QuestionTableProvider } from "@/contexts/QuestionTableContext" ;
32
+ import { useUser } from "@/contexts/UserContext" ;
32
33
33
34
interface DataTableProps < TData , TValue > {
34
35
columns : ColumnDef < TData , TValue > [ ] ;
@@ -40,12 +41,22 @@ export function DataTable<TData, TValue>({
40
41
columns,
41
42
data,
42
43
} : DataTableProps < TData , TValue > ) {
44
+ const user = useUser ( ) ;
45
+
46
+ const isAdmin = useMemo ( ( ) => {
47
+ return user ?. roles . includes ( "admin" ) ;
48
+ } , [ user ] ) ;
49
+
50
+ const filteredColumns = isAdmin
51
+ ? columns
52
+ : columns . filter ( ( column ) => column . id !== "Action" ) ;
53
+
43
54
const [ sorting , setSorting ] = useState < SortingState > ( [ ] ) ;
44
55
const [ columnFilters , setColumnFilters ] = useState < ColumnFiltersState > ( [ ] ) ;
45
56
46
57
const table = useReactTable ( {
47
58
data,
48
- columns,
59
+ columns : filteredColumns ,
49
60
getCoreRowModel : getCoreRowModel ( ) ,
50
61
getPaginationRowModel : getPaginationRowModel ( ) ,
51
62
onSortingChange : setSorting ,
0 commit comments