1
0
Fork 0
mirror of synced 2024-06-29 11:31:06 +12:00

add ability to copy _rev and _id from data tab

This commit is contained in:
Peter Clement 2021-10-12 17:32:15 +01:00
parent b2b1d53c94
commit 9c99e4dd0b
4 changed files with 45 additions and 3 deletions

View file

@ -5,11 +5,13 @@
import RelationshipRenderer from "./RelationshipRenderer.svelte"
import AttachmentRenderer from "./AttachmentRenderer.svelte"
import ArrayRenderer from "./ArrayRenderer.svelte"
import InternalRenderer from "./InternalRenderer.svelte"
export let row
export let schema
export let value
export let customRenderers = []
let renderer
const typeMap = {
boolean: BooleanRenderer,
datetime: DateTimeRenderer,
@ -20,10 +22,20 @@
number: StringRenderer,
longform: StringRenderer,
array: ArrayRenderer,
internal: InternalRenderer,
}
$: type = schema?.type ?? "string"
$: customRenderer = customRenderers?.find(x => x.column === schema?.name)
$: renderer = customRenderer?.component ?? typeMap[type] ?? StringRenderer
$: {
// this has to be done purely in the front-end due to migration issues
// the schema gets overriden on every tables fetch so we can't just set
// these to be a new type unfortunately
if (schema.name === "_id" || schema.name === "_rev") {
renderer = customRenderer?.component ?? typeMap.internal ?? StringRenderer
} else {
renderer = customRenderer?.component ?? typeMap[type] ?? StringRenderer
}
}
</script>
{#if renderer && (customRenderer || (value != null && value !== ""))}

View file

@ -0,0 +1,28 @@
<script>
import Icon from "../Icon/Icon.svelte"
import { notifications } from "../Stores/notifications"
export let value
const onClick = e => {
e.stopPropagation()
copyToClipboard(value)
}
function copyToClipboard(value) {
navigator.clipboard.writeText(value).then(() => {
notifications.success("Copied")
})
}
</script>
<div on:click|stopPropagation={onClick}>
<Icon size="S" name="Copy" />
</div>
<style>
div {
overflow: hidden;
text-overflow: ellipsis;
width: 150px;
}
</style>

View file

@ -43,8 +43,6 @@
function schemaHasOptions(schema) {
return !!schema.constraints?.inclusion?.length
}
$: console.log($tables.list)
</script>
<Select

View file

@ -97,6 +97,8 @@ export const AUTO_COLUMN_SUB_TYPES = {
CREATED_AT: "createdAt",
UPDATED_BY: "updatedBy",
UPDATED_AT: "updatedAt",
_id: "_id",
_rev: "_rev"
}
export const AUTO_COLUMN_DISPLAY_NAMES = {
@ -105,6 +107,8 @@ export const AUTO_COLUMN_DISPLAY_NAMES = {
CREATED_AT: "Created At",
UPDATED_BY: "Updated By",
UPDATED_AT: "Updated At",
_id: "_id",
_rev: "_rev"
}
export const FILE_TYPES = {