@@ -30,6 +30,7 @@ import {
3030 createPageColumns ,
3131 createReferrerColumns ,
3232} from '@/components/table/rows' ;
33+ import { CornerCard } from '@/components/ui/corner-card' ;
3334import { useBatchDynamicQuery } from '@/hooks/use-dynamic-query' ;
3435import { getUserTimezone } from '@/lib/timezone' ;
3536import { useDateFilters } from '@/hooks/use-date-filters' ;
@@ -961,7 +962,7 @@ export function WebsiteOverviewTab({
961962 </ div >
962963
963964 { /* Chart */ }
964- < div className = "rounded border border-sidebar-border border-b-0 bg-sidebar shadow-sm" >
965+ < CornerCard className = "overflow-hidden" cornerSize = "md" animated = { false } >
965966 < div className = "flex flex-col items-start justify-between gap-3 border-sidebar-border border-b px-4 py-3 sm:flex-row" >
966967 < div >
967968 < h2 className = "font-semibold text-lg text-sidebar-foreground tracking-tight" >
@@ -986,7 +987,7 @@ export function WebsiteOverviewTab({
986987 < div >
987988 < MetricsChartWithAnnotations
988989 websiteId = { websiteId }
989- className = "rounded border-0"
990+ className = "rounded border-0 shadow-none "
990991 data = { chartData }
991992 height = { 350 }
992993 isLoading = { isLoading }
@@ -998,116 +999,134 @@ export function WebsiteOverviewTab({
998999 } }
9991000 />
10001001 </ div >
1001- </ div >
1002+ </ CornerCard >
10021003
10031004 { /* Tables */ }
10041005 < div className = "grid grid-cols-1 gap-4 lg:grid-cols-2" >
1005- < DataTable
1006- description = "Referrers and campaign data"
1007- isLoading = { isLoading }
1008- minHeight = { 350 }
1009- onAddFilter = { onAddFilter }
1010- tabs = { referrerTabs }
1011- title = "Traffic Sources"
1012- />
1006+ < CornerCard className = "overflow-hidden" cornerSize = "sm" animated = { false } >
1007+ < DataTable
1008+ description = "Referrers and campaign data"
1009+ className = "rounded border-0 shadow-none"
1010+ isLoading = { isLoading }
1011+ minHeight = { 350 }
1012+ onAddFilter = { onAddFilter }
1013+ tabs = { referrerTabs }
1014+ title = "Traffic Sources"
1015+ />
1016+ </ CornerCard >
10131017
1014- < DataTable
1015- description = "Top pages and entry/exit points"
1016- isLoading = { isLoading }
1017- minHeight = { 350 }
1018- onAddFilter = { onAddFilter }
1019- tabs = { pagesTabs }
1020- title = "Pages"
1021- />
1018+ < CornerCard className = "overflow-hidden" cornerSize = "sm" animated = { false } >
1019+ < DataTable
1020+ description = "Top pages and entry/exit points"
1021+ className = "rounded border-0 shadow-none"
1022+ isLoading = { isLoading }
1023+ minHeight = { 350 }
1024+ onAddFilter = { onAddFilter }
1025+ tabs = { pagesTabs }
1026+ title = "Pages"
1027+ />
1028+ </ CornerCard >
10221029 </ div >
10231030
10241031 { /* Custom Events Table */ }
1025- < CustomEventsSection
1026- customEventsData = { customEventsData }
1027- isLoading = { isLoading }
1028- onAddFilter = { onAddFilter }
1029- />
1032+ < CornerCard className = "overflow-hidden" cornerSize = "md" animated = { false } >
1033+ < CustomEventsSection
1034+ className = "rounded border-0 shadow-none"
1035+ customEventsData = { customEventsData }
1036+ isLoading = { isLoading }
1037+ onAddFilter = { onAddFilter }
1038+ />
1039+ </ CornerCard >
10301040
10311041 { /* Technology */ }
10321042 < div className = "grid grid-cols-1 gap-4 lg:grid-cols-3" >
1033- < DataTable
1034- columns = { deviceColumns }
1035- data = { analytics . device_types || [ ] }
1036- description = "Device breakdown"
1037- initialPageSize = { 8 }
1038- isLoading = { isLoading }
1039- minHeight = { 350 }
1040- onAddFilter = { onAddFilter }
1041- showSearch = { false }
1042- tabs = { [
1043- {
1044- id : 'devices' ,
1045- label : 'Devices' ,
1046- data : analytics . device_types || [ ] ,
1047- columns : deviceColumns ,
1048- getFilter : ( row : TechnologyData ) => {
1049- const deviceDisplayToFilterMap : Record < string , string > = {
1050- laptop : 'mobile' ,
1051- tablet : 'tablet' ,
1052- desktop : 'desktop' ,
1053- } ;
1054- return {
1055- field : 'device_type' ,
1056- value : deviceDisplayToFilterMap [ row . name ] || row . name ,
1057- } ;
1043+ < CornerCard className = "overflow-hidden" cornerSize = "sm" animated = { false } >
1044+ < DataTable
1045+ columns = { deviceColumns }
1046+ data = { analytics . device_types || [ ] }
1047+ description = "Device breakdown"
1048+ className = "rounded border-0 shadow-none"
1049+ initialPageSize = { 8 }
1050+ isLoading = { isLoading }
1051+ minHeight = { 350 }
1052+ onAddFilter = { onAddFilter }
1053+ showSearch = { false }
1054+ tabs = { [
1055+ {
1056+ id : 'devices' ,
1057+ label : 'Devices' ,
1058+ data : analytics . device_types || [ ] ,
1059+ columns : deviceColumns ,
1060+ getFilter : ( row : TechnologyData ) => {
1061+ const deviceDisplayToFilterMap : Record < string , string > = {
1062+ laptop : 'mobile' ,
1063+ tablet : 'tablet' ,
1064+ desktop : 'desktop' ,
1065+ } ;
1066+ return {
1067+ field : 'device_type' ,
1068+ value : deviceDisplayToFilterMap [ row . name ] || row . name ,
1069+ } ;
1070+ } ,
10581071 } ,
1059- } ,
1060- ] }
1061- title = "Devices"
1062- / >
1072+ ] }
1073+ title = "Devices"
1074+ />
1075+ </ CornerCard >
10631076
1064- < DataTable
1065- columns = { browserColumns }
1066- data = { analytics . browser_versions || [ ] }
1067- description = "Browser breakdown"
1068- initialPageSize = { 8 }
1069- isLoading = { isLoading }
1070- minHeight = { 350 }
1071- onAddFilter = { onAddFilter }
1072- showSearch = { false }
1073- tabs = { [
1074- {
1075- id : 'browsers' ,
1076- label : 'Browsers' ,
1077- data : analytics . browser_versions || [ ] ,
1078- columns : browserColumns ,
1079- getFilter : ( row : TechnologyData ) => ( {
1080- field : 'browser_name' ,
1081- value : row . name ,
1082- } ) ,
1083- } ,
1084- ] }
1085- title = "Browsers"
1086- />
1077+ < CornerCard className = "overflow-hidden" cornerSize = "sm" animated = { false } >
1078+ < DataTable
1079+ columns = { browserColumns }
1080+ data = { analytics . browser_versions || [ ] }
1081+ description = "Browser breakdown"
1082+ className = "rounded border-0 shadow-none"
1083+ initialPageSize = { 8 }
1084+ isLoading = { isLoading }
1085+ minHeight = { 350 }
1086+ onAddFilter = { onAddFilter }
1087+ showSearch = { false }
1088+ tabs = { [
1089+ {
1090+ id : 'browsers' ,
1091+ label : 'Browsers' ,
1092+ data : analytics . browser_versions || [ ] ,
1093+ columns : browserColumns ,
1094+ getFilter : ( row : TechnologyData ) => ( {
1095+ field : 'browser_name' ,
1096+ value : row . name ,
1097+ } ) ,
1098+ } ,
1099+ ] }
1100+ title = "Browsers"
1101+ />
1102+ </ CornerCard >
10871103
1088- < DataTable
1089- columns = { osColumns }
1090- data = { analytics . operating_systems || [ ] }
1091- description = "OS breakdown"
1092- initialPageSize = { 8 }
1093- isLoading = { isLoading }
1094- minHeight = { 350 }
1095- onAddFilter = { onAddFilter }
1096- showSearch = { false }
1097- tabs = { [
1098- {
1099- id : 'operating_systems' ,
1100- label : 'Operating Systems' ,
1101- data : analytics . operating_systems || [ ] ,
1102- columns : osColumns ,
1103- getFilter : ( row : TechnologyData ) => ( {
1104- field : 'os_name' ,
1105- value : row . name ,
1106- } ) ,
1107- } ,
1108- ] }
1109- title = "Operating Systems"
1110- />
1104+ < CornerCard className = "overflow-hidden" cornerSize = "sm" animated = { false } >
1105+ < DataTable
1106+ columns = { osColumns }
1107+ data = { analytics . operating_systems || [ ] }
1108+ description = "OS breakdown"
1109+ className = "rounded border-0 shadow-none"
1110+ initialPageSize = { 8 }
1111+ isLoading = { isLoading }
1112+ minHeight = { 350 }
1113+ onAddFilter = { onAddFilter }
1114+ showSearch = { false }
1115+ tabs = { [
1116+ {
1117+ id : 'operating_systems' ,
1118+ label : 'Operating Systems' ,
1119+ data : analytics . operating_systems || [ ] ,
1120+ columns : osColumns ,
1121+ getFilter : ( row : TechnologyData ) => ( {
1122+ field : 'os_name' ,
1123+ value : row . name ,
1124+ } ) ,
1125+ } ,
1126+ ] }
1127+ title = "Operating Systems"
1128+ />
1129+ </ CornerCard >
11111130 </ div >
11121131 </ div >
11131132 ) ;
0 commit comments