@@ -10,7 +10,7 @@ import NewNoteModal from '../components/modals/new_note';
10
10
import UpdateBookModal from '../components/modals/edit_book' ;
11
11
import UpdateNoteModal from '../components/modals/edit_note' ;
12
12
import { useDrawer } from '../contexts/DrawerProvider' ;
13
- import { LoadingBar } from '../components/loading' ;
13
+ import { LoadingRing } from '../components/loading' ;
14
14
import { apiErrorIntoToast , useToast } from '../contexts/ToastProvider' ;
15
15
import { ApiError } from '../core/api' ;
16
16
import Icon from '../components/icon' ;
@@ -76,11 +76,13 @@ const Shelf: Component = () => {
76
76
}
77
77
} )
78
78
79
+ const globalLoading = ( ) => book . loading || note . loading || noteContent . loading
80
+
79
81
const breadcrumb : ( ) => Breadcrumb = ( ) => {
80
82
return {
81
83
username : params . username ,
82
- bookSlug : book ( ) ?. name ,
83
- noteSlug : note ( ) ?. name ,
84
+ bookSlug : globalLoading ( ) ? undefined : book ( ) ?. name ,
85
+ noteSlug : globalLoading ( ) ? undefined : note ( ) ?. name ,
84
86
}
85
87
}
86
88
@@ -155,7 +157,7 @@ const Shelf: Component = () => {
155
157
onclick = { onNewBookClick }
156
158
class = "btn join-item btn-ghost"
157
159
type = "button"
158
- disabled = { ! allowBookCreate ( ) }
160
+ disabled = { globalLoading ( ) || ! allowBookCreate ( ) }
159
161
title = "Create New Notebook"
160
162
>
161
163
< Icon name = "folder-plus" />
@@ -164,30 +166,30 @@ const Shelf: Component = () => {
164
166
onclick = { onNewNoteClick }
165
167
class = "btn join-item btn-ghost"
166
168
type = "button"
167
- disabled = { ! allowNoteCreate ( ) }
169
+ disabled = { globalLoading ( ) || ! allowNoteCreate ( ) }
168
170
title = "Create New Note"
169
171
>
170
172
< Icon name = "file-plus" />
171
173
</ button >
172
174
< Switch >
173
- < Match when = { book ( ) && ! note ( ) } >
175
+ < Match when = { slugParts ( ) . bookSlug && ! slugParts ( ) . noteSlug } >
174
176
< button
175
177
onclick = { onUpdateBookClick }
176
178
class = "btn join-item btn-ghost"
177
179
type = "button"
178
- disabled = { ! allowNoteCreate ( ) }
180
+ disabled = { globalLoading ( ) || ! allowNoteCreate ( ) }
179
181
title = "Notebook Settings"
180
182
>
181
183
< Icon name = "settings" />
182
184
< Icon name = "folder" />
183
185
</ button >
184
186
</ Match >
185
- < Match when = { book ( ) && note ( ) } >
187
+ < Match when = { slugParts ( ) . bookSlug && slugParts ( ) . noteSlug } >
186
188
< button
187
189
onclick = { onUpdateNoteClick }
188
190
class = "btn join-item btn-ghost"
189
191
type = "button"
190
- disabled = { ! allowNoteCreate ( ) }
192
+ disabled = { globalLoading ( ) || ! allowNoteCreate ( ) }
191
193
title = "Note Settings"
192
194
>
193
195
< Icon name = "settings" />
@@ -198,7 +200,7 @@ const Shelf: Component = () => {
198
200
</ div >
199
201
< NoteBreadcrumb class = "flex-1" { ...breadcrumb ( ) } />
200
202
</ div >
201
- < Show when = { ! note . loading && ! noteContent . loading } fallback = { < LoadingBar /> } >
203
+ < Show when = { ! note . loading && ! noteContent . loading } fallback = { < LoadingRing /> } >
202
204
< Show when = { note ( ) } fallback = {
203
205
< div class = "hero pt-6 bg-base-200 rounded-md" >
204
206
< div class = "hero-content text-center" >
0 commit comments