44-->
55
66<template >
7- <div class =" container" >
8- <div id =" img" />
9- <div class =" content" >
10- <h1 >404</h1 >
11- <h2 >
12- {{ t('libresign', 'Page not found') }}
13- </h2 >
14- <p >{{ paragrath }}</p >
15- <NcNoteCard v-for =" (error, index) in errors"
16- :key =" index"
17- type =" error"
18- heading =" Error" >
19- {{ error.message }}
20- </NcNoteCard >
7+ <div class =" error-page" >
8+ <div class =" logo-header" >
9+ <img :src =" logoLibreSign"
10+ :alt =" t('libresign', 'LibreSign')"
11+ class =" logo-icon" >
12+ </div >
13+
14+ <div class =" error-container" >
15+ <NcEmptyContent :name =" t('libresign', 'Page not found')"
16+ :description =" paragrath" >
17+ <template #icon >
18+ <AlertCircleOutline :size =" 80" class =" alert-icon" />
19+ </template >
20+ <template #action >
21+ <div v-if =" errors.length" class =" error-messages" >
22+ <NcNoteCard v-for =" (error, index) in errors"
23+ :key =" index"
24+ type =" error" >
25+ {{ error.message }}
26+ </NcNoteCard >
27+ </div >
28+ </template >
29+ </NcEmptyContent >
2130 </div >
2231 </div >
2332</template >
2635import { loadState } from ' @nextcloud/initial-state'
2736import { translate as t } from ' @nextcloud/l10n'
2837
38+ import NcEmptyContent from ' @nextcloud/vue/components/NcEmptyContent'
2939import NcNoteCard from ' @nextcloud/vue/components/NcNoteCard'
40+ import AlertCircleOutline from ' vue-material-design-icons/AlertCircleOutline.vue'
41+
42+ import logoLibreSign from ' ../../img/logo-gray.svg'
3043
3144export default {
3245 name: ' DefaultPageError' ,
3346 components: {
47+ NcEmptyContent,
3448 NcNoteCard,
49+ AlertCircleOutline,
3550 },
3651
3752 data () {
3853 return {
54+ logoLibreSign,
3955 paragrath: t (' libresign' , ' Sorry but the page you are looking for does not exist, has been removed, moved or is temporarily unavailable.' ),
4056 }
4157 },
@@ -47,7 +63,7 @@ export default {
4763 }
4864 const errorMessage = loadState (' libresign' , ' error' , {})? .message
4965 if (errorMessage) {
50- return [errorMessage]
66+ return [{ message : errorMessage } ]
5167 }
5268 return []
5369 },
@@ -57,49 +73,53 @@ export default {
5773< / script>
5874
5975< style lang= " scss" scoped>
60- .container {
76+ .error - page {
6177 display: flex;
62- flex- direction: row ;
78+ flex- direction: column ;
6379 align- items: center;
6480 justify- content: center;
65- height: 100 % ;
66-
67- #img{
68- background- image: url (' ../../img/sad-face-in-rounded-square.svg' );
69- height: 140px ;
70- width: 140px ;
71- background- repeat: no- repeat;
72- background- size: cover;
73- line- height: 17 .6px ;
74- }
81+ min- height: 100vh ;
82+ padding: 40px 20px ;
83+ gap: 24px ;
84+ background: var (-- color- background- dark);
7585
76- }
86+ .logo - header {
87+ .logo - icon {
88+ height: 80px ;
7789
78- .content {
79- box- sizing: border- box;
80- font- family: ' Nunito' , sans- serif;
81- max- width: 560px ;
82- padding- inline- start: 50px ;
83-
84- h1{
85- font- size: 65px ;
86- font- weight: 700 ;
87- line- height: 71 .5px ;
88- margin- bottom: 10px ;
89- margin- top: 0px ;
90+ @media (max - width : 768px ) {
91+ height: 60px ;
92+ }
93+ }
9094 }
9195
92- h2{
93- font- size: 21px ;
94- font- weight: 400 ;
95- line- height: 23 .1px ;
96- margin: 0px ;
97- margin- bottom: 10px ;
96+ .error - container {
97+ max- width: 800px ;
98+ width: 100 % ;
99+ padding: 48px 32px ;
100+ background: var (-- color- main- background);
101+ border- radius: var (-- border- radius- large);
102+ box- shadow: 0 2px 16px rgba (0 , 0 , 0 , 0.1 );
103+
104+ .error - messages {
105+ display: flex;
106+ flex- direction: column;
107+ gap: 12px ;
108+ width: 100 % ;
109+ min- width: 500px ;
110+
111+ @media (max - width : 768px ) {
112+ min- width: auto;
113+ }
114+ }
115+
116+ @media (max - width : 768px ) {
117+ padding: 32px 24px ;
118+ }
98119 }
99- p{
100- color: var (-- color- main- text);
101- font- weight: 400 ;
102- line- height: 17 .6px ;
120+
121+ .alert - icon {
122+ color: #e53c3c;
103123 }
104124}
105125< / style>
0 commit comments