@@ -141,91 +141,106 @@ export default {
141
141
142
142
<template >
143
143
<CoreScrollable v-if =" doc" >
144
- <CoreNavPanel class =" flex flex-col gap-1" >
145
- <button class =" sidebar-link w-full" @click.stop =" duplicateDocument" >
146
- <Icon name =" DocDuplicate" />
147
- <span class =" ml-2 flex-grow text-left" >Duplicate</span >
148
- </button >
149
- <DiscardableAction v-if =" doc.id" :discarded-at =" doc.discardedAt" :on-discard =" discardDocument" :on-restore =" restoreDocument" class =" sidebar-link w-full" />
150
- <button v-if =" hasCodeblocks" class =" sidebar-link w-full" @click =" openSandbox" >
151
- <Icon name =" BrandCodeSandbox" />
152
- <span class =" ml-2 flex-grow text-left" >Create Sandbox</span >
153
- </button >
154
- <template v-if =" doc .public " >
155
- <button class =" sidebar-link w-full" @click =" restrictDocument" >
156
- <Icon name =" LockClosed" />
157
- <span class =" ml-2 flex-grow text-left" >Make Private</span >
144
+ <div class =" flex flex-col flex-grow" >
145
+ <div class =" flex flex-col gap-1 p-1" >
146
+ <button class =" sidebar-link w-full" @click.stop =" duplicateDocument" >
147
+ <Icon name =" DocDuplicate" />
148
+ <span class =" ml-2 flex-grow text-left" >Duplicate</span >
158
149
</button >
159
- <button class =" sidebar-link w-full" @click =" copyPublicUrl" >
160
- <Icon name =" Clipboard" />
161
- <span class =" ml-2 flex-grow text-left" >Copy Link</span >
150
+ <DiscardableAction v-if =" doc.id" :discarded-at =" doc.discardedAt" :on-discard =" discardDocument" :on-restore =" restoreDocument" class =" sidebar-link w-full" />
151
+ <button v-if =" hasCodeblocks" class =" sidebar-link w-full" @click =" openSandbox" >
152
+ <Icon name =" BrandCodeSandbox" />
153
+ <span class =" ml-2 flex-grow text-left" >Create Sandbox</span >
162
154
</button >
163
- <CoreLayer >
164
- <input ref =" link" :value =" publicUrl" type =" text" class =" bg-layer rounded p-2 w-full" readonly data-test-public-url >
155
+ <template v-if =" doc .public " >
156
+ <button class =" sidebar-link w-full" @click =" restrictDocument" >
157
+ <Icon name =" LockClosed" />
158
+ <span class =" ml-2 flex-grow text-left" >Make Private</span >
159
+ </button >
160
+ <button class =" sidebar-link w-full" @click =" copyPublicUrl" >
161
+ <Icon name =" Clipboard" />
162
+ <span class =" ml-2 flex-grow text-left" >Copy Link</span >
163
+ </button >
164
+ <CoreLayer >
165
+ <input ref =" link" :value =" publicUrl" type =" text" class =" bg-layer rounded p-2 w-full" readonly data-test-public-url >
166
+ </CoreLayer >
167
+ </template >
168
+ <template v-else >
169
+ <button class =" sidebar-link w-full" data-test-share-doc @click =" shareDocument" >
170
+ <Icon name =" LockOpen" />
171
+ <span class =" ml-2 flex-grow text-left" >Make Public</span >
172
+ </button >
173
+ </template >
174
+ </div >
175
+ <template v-if =" references .length || backlinks .length || doc .tags .length || doc .tasks .length " >
176
+ <FlexDivider />
177
+ <CoreLayer class =" flex flex-col gap-1 p-1" >
178
+ <DashPanel
179
+ v-if =" references.length"
180
+ class =" bg-layer"
181
+ data-test-id =" doc-references"
182
+ label =" References"
183
+ >
184
+ <DocLink v-for =" reference in references" :key =" reference.id" :doc =" reference" class =" sidebar-link" />
185
+ </DashPanel >
186
+ <DashPanel
187
+ v-if =" backlinks.length"
188
+ class =" bg-layer"
189
+ data-test-id =" doc-backlinks"
190
+ label =" Backlinks"
191
+ >
192
+ <DocLink v-for =" reference in backlinks" :key =" reference.id" :doc =" reference" class =" sidebar-link" />
193
+ </DashPanel >
194
+ <DashPanel
195
+ v-if =" doc.tags.length"
196
+ class =" bg-layer"
197
+ collapsed
198
+ label =" Tags"
199
+ >
200
+ <TagLink v-for =" tag in doc.tags" :key =" tag" :tag =" tag" class =" sidebar-link" />
201
+ </DashPanel >
202
+ <DashPanel
203
+ v-if =" doc.tasks.length"
204
+ class =" bg-layer"
205
+ collapsed
206
+ label =" Tasks"
207
+ >
208
+ <div v-for =" task in doc.tasks" :key =" task" class =" flex items-center px-3 py-2 my-1 md:px-2 md:py-1" >
209
+ <Icon name =" Check" />
210
+ <span class =" flex-grow overflow-hidden truncate ml-2" >{{ task }}</span >
211
+ </div >
212
+ </DashPanel >
165
213
</CoreLayer >
166
214
</template >
167
- <template v-else >
168
- <button class =" sidebar-link w-full" data-test-share-doc @click =" shareDocument" >
169
- <Icon name =" LockOpen" />
170
- <span class =" ml-2 flex-grow text-left" >Make Public</span >
171
- </button >
172
- </template >
173
- </CoreNavPanel >
174
- <CoreDivider v-if =" references.length" />
175
- <CoreNavPanel
176
- v-if =" references.length"
177
- class =" flex flex-col gap-1"
178
- data-test-id =" doc-references"
179
- label =" References"
180
- >
181
- <DocLink v-for =" reference in references" :key =" reference.id" :doc =" reference" class =" sidebar-link" />
182
- </CoreNavPanel >
183
- <CoreDivider v-if =" backlinks.length" />
184
- <CoreNavPanel
185
- v-if =" backlinks.length"
186
- class =" flex flex-col gap-1"
187
- data-test-id =" doc-backlinks"
188
- label =" Backlinks"
189
- >
190
- <DocLink v-for =" reference in backlinks" :key =" reference.id" :doc =" reference" class =" sidebar-link" />
191
- </CoreNavPanel >
192
- <CoreDivider v-if =" doc.tags.length" />
193
- <CoreNavPanel v-if =" doc.tags.length" class =" flex flex-col gap-1" label =" Tags" >
194
- <TagLink v-for =" tag in doc.tags" :key =" tag" :tag =" tag" class =" sidebar-link" />
195
- </CoreNavPanel >
196
- <CoreDivider v-if =" doc.tasks.length" />
197
- <CoreNavPanel v-if =" doc.tasks.length" class =" flex flex-col gap-1" label =" Tasks" >
198
- <div v-for =" task in doc.tasks" :key =" task" class =" flex items-center px-3 py-2 my-1 md:px-2 md:py-1" >
199
- <Icon name =" Check" />
200
- <span class =" flex-grow overflow-hidden truncate ml-3" >{{ task }}</span >
201
- </div >
202
- </CoreNavPanel >
203
- <CoreDivider />
204
- <CoreNavPanel class =" flex flex-col flex-grow justify-end gap-1" >
205
- <div v-if =" doc.updatedAt" >
206
- <small class =" text-layer-muted" >Last Saved</small >
207
- <div class =" capitalize pt-2 md:pt-1" >
208
- {{ savedAt }}
209
- </div >
210
- </div >
211
- <div v-if =" doc.createdAt" class =" mt-3 md:mt-2" >
212
- <small class =" text-layer-muted" >Created</small >
213
- <div class =" pt-2 md:pt-1" >
214
- {{ createdAt }}
215
- </div >
216
- </div >
217
- <div v-if =" doc.updatedAt" class =" mt-3 md:mt-2" >
218
- <small class =" text-layer-muted" >Updated</small >
219
- <div class =" pt-2 md:pt-1" >
220
- {{ updatedAt }}
221
- </div >
222
- </div >
223
- <div v-if =" doc.discardedAt" class =" mt-3 md:mt-2" >
224
- <small class =" text-layer-muted" >Discarded</small >
225
- <div class =" pt-2 md:pt-1" >
226
- {{ discardedAt }}
227
- </div >
228
- </div >
229
- </CoreNavPanel >
215
+ <FlexDivider />
216
+ <CoreLayer class =" flex flex-col gap-1 p-1" >
217
+ <DashPanel class =" bg-layer" label =" Timestamps" >
218
+ <div v-if =" doc.updatedAt" >
219
+ <small class =" text-layer-muted" >Last Saved</small >
220
+ <div class =" capitalize pt-2 md:pt-1" >
221
+ {{ savedAt }}
222
+ </div >
223
+ </div >
224
+ <div v-if =" doc.createdAt" class =" mt-3 md:mt-2" >
225
+ <small class =" text-layer-muted" >Created</small >
226
+ <div class =" pt-2 md:pt-1" >
227
+ {{ createdAt }}
228
+ </div >
229
+ </div >
230
+ <div v-if =" doc.updatedAt" class =" mt-3 md:mt-2" >
231
+ <small class =" text-layer-muted" >Updated</small >
232
+ <div class =" pt-2 md:pt-1" >
233
+ {{ updatedAt }}
234
+ </div >
235
+ </div >
236
+ <div v-if =" doc.discardedAt" class =" mt-3 md:mt-2" >
237
+ <small class =" text-layer-muted" >Discarded</small >
238
+ <div class =" pt-2 md:pt-1" >
239
+ {{ discardedAt }}
240
+ </div >
241
+ </div >
242
+ </DashPanel >
243
+ </CoreLayer >
244
+ </div >
230
245
</CoreScrollable >
231
246
</template >
0 commit comments