File tree 4 files changed +46
-10
lines changed
packages/effects/common-ui/src/page
4 files changed +46
-10
lines changed Original file line number Diff line number Diff line change @@ -5,5 +5,9 @@ defineOptions({
5
5
</script >
6
6
7
7
<template >
8
- <div >page-footer</div >
8
+ <div
9
+ class =" bg-card align-center absolute bottom-0 left-0 right-0 flex px-6 py-4"
10
+ >
11
+ <slot ></slot >
12
+ </div >
9
13
</template >
Original file line number Diff line number Diff line change 1
1
<script setup lang="ts">
2
+ import type { PageHeaderProps } from ' ./page.ts' ;
3
+
2
4
defineOptions ({
3
5
name: ' PageHeader' ,
4
6
});
7
+
8
+ const props = defineProps <PageHeaderProps >();
5
9
</script >
6
10
7
11
<template >
8
- <div >page-header</div >
12
+ <div class =" bg-card px-6 py-4" >
13
+ <div class =" flex justify-between text-lg font-bold" >
14
+ {{ props.title }}
15
+ </div >
16
+ <div class =" pt-3" >
17
+ <slot ></slot >
18
+ </div >
19
+ </div >
9
20
</template >
Original file line number Diff line number Diff line change 1
- interface Props {
2
- title : string ;
1
+ interface PageHeaderProps {
2
+ title ? : string ;
3
3
}
4
4
5
- export type { Props } ;
5
+ interface Props extends PageHeaderProps {
6
+ headerSticky ?: boolean ;
7
+ showFooter ?: boolean ;
8
+ showHeader ?: boolean ;
9
+ }
10
+
11
+ export type { PageHeaderProps , Props } ;
Original file line number Diff line number Diff line change @@ -8,13 +8,28 @@ defineOptions({
8
8
name: ' Page' ,
9
9
});
10
10
11
- const props = withDefaults (defineProps <Props >(), {});
11
+ const props = withDefaults (defineProps <Props >(), {
12
+ headerSticky: false ,
13
+ showFooter: false ,
14
+ showHeader: true ,
15
+ title: ' ' ,
16
+ });
12
17
</script >
13
18
14
19
<template >
15
- <div >
16
- <PageHeader />
17
- <slot >{{ props.title }}</slot >
18
- <PageFooter />
20
+ <div class =" relative h-full" >
21
+ <PageHeader v-if =" props.showHeader" :title =" props.title" >
22
+ <template #default >
23
+ <slot name =" headerContent" ></slot >
24
+ </template >
25
+ </PageHeader >
26
+ <div class =" m-4 overflow-hidden" >
27
+ <slot ></slot >
28
+ </div >
29
+ <PageFooter v-if =" props.showFooter" >
30
+ <template #default >
31
+ <slot name =" footerContent" ></slot >
32
+ </template >
33
+ </PageFooter >
19
34
</div >
20
35
</template >
You can’t perform that action at this time.
0 commit comments