diff --git a/common/file-utilities.js b/common/file-utilities.js index 993f933a..ecb1e021 100644 --- a/common/file-utilities.js +++ b/common/file-utilities.js @@ -254,7 +254,7 @@ export const upload = async ({ file, context, bucketName }) => { } let item = res.data.data; - if (item.data.type.startsWith("image/")) { + if (item.type.startsWith("image/")) { let url = Strings.getURLfromCID(item.cid); try { let blurhash = await encodeImageToBlurhash(url); diff --git a/common/user-behaviors.js b/common/user-behaviors.js index c29be3d4..33119f2e 100644 --- a/common/user-behaviors.js +++ b/common/user-behaviors.js @@ -211,7 +211,7 @@ export const saveCopy = async ({ files, slate }) => { export const download = async (file) => { Actions.createDownloadActivity({ file }); if (file.isLink) return; - if (Validations.isUnityType(file.data.type)) { + if (Validations.isUnityType(file.type)) { return await downloadZip(file); } let uri = Strings.getURLfromCID(file.cid); @@ -281,7 +281,7 @@ export const compressAndDownloadFiles = async ({ files, name = "slate.zip" }) => let downloadFiles = []; for (const file of files) { if (file.isLink) continue; - if (Validations.isUnityType(file.data.type)) { + if (Validations.isUnityType(file.type)) { const { data } = await Actions.getZipFilePaths(file); const unityFiles = data.filesPaths.map((item) => ({ url: item.replace(`/${file.id}/`, `${Strings.getURLfromCID(file.cid)}/`), diff --git a/common/utilities.js b/common/utilities.js index c807b7e4..90401608 100644 --- a/common/utilities.js +++ b/common/utilities.js @@ -23,7 +23,7 @@ export const getImageUrlIfExists = (file, sizeLimit = null) => { } } - if (Validations.isPreviewableImage(file.data.type)) { + if (Validations.isPreviewableImage(file.type)) { if (sizeLimit && file.size > sizeLimit) { return; } diff --git a/components/core/ActivityGroup/components/ViewMoreContent.js b/components/core/ActivityGroup/components/ViewMoreContent.js index 2cd4acda..bb52191e 100644 --- a/components/core/ActivityGroup/components/ViewMoreContent.js +++ b/components/core/ActivityGroup/components/ViewMoreContent.js @@ -42,7 +42,7 @@ export default function ViewMoreContent({ items, children, ...props }) {
{items?.slice(0, 3).map((file) => { const isImageFile = - Validations.isPreviewableImage(file?.data?.type) || file?.data?.coverImage; + Validations.isPreviewableImage(file?.type) || file?.data?.coverImage; return (
{ let isImage = false; objects.some((object, i) => { - const isPreviewableImage = Validations.isPreviewableImage(object.data.type); + const isPreviewableImage = Validations.isPreviewableImage(object.type); if (isPreviewableImage) (objectIdx = i), (isImage = true); return isPreviewableImage; }); diff --git a/components/core/DataView.js b/components/core/DataView.js index c5912f90..876c69bb 100644 --- a/components/core/DataView.js +++ b/components/core/DataView.js @@ -659,7 +659,7 @@ export default class DataView extends React.Component { _handleDragToDesktop = (e, object) => { const url = Strings.getURLfromCID(object.cid); const title = object.filename || object.name; - const type = object.data.type; + const type = object.type; console.log(e.dataTransfer, e.dataTransfer.setData); e.dataTransfer.setData("DownloadURL", `${type}:${title}:${url}`); }; @@ -976,7 +976,7 @@ export default class DataView extends React.Component { }} onDragEnd={this._enableDragAndDropUploadEvent} > - + { diff --git a/components/core/ObjectPreview/index.js b/components/core/ObjectPreview/index.js index b33d4fbf..ae9f4a72 100644 --- a/components/core/ObjectPreview/index.js +++ b/components/core/ObjectPreview/index.js @@ -24,7 +24,7 @@ import LinkObjectPreview from "~/components/core/ObjectPreview/LinkObjectPreview import ObjectPreviewPrimitive from "~/components/core/ObjectPreview/ObjectPreviewPrimitive"; const ObjectPreview = ({ file, ...props }) => { - const { type, link } = file.data; + const { type, link } = file; const url = Strings.getURLfromCID(file.cid); diff --git a/components/core/ObjectPreview/placeholders/index.js b/components/core/ObjectPreview/placeholders/index.js index 2e665ab6..61eb64d3 100644 --- a/components/core/ObjectPreview/placeholders/index.js +++ b/components/core/ObjectPreview/placeholders/index.js @@ -40,7 +40,7 @@ const STYLES_TAG = (theme) => css` `; const PlaceholderPrimitive = ({ file, ratio }) => { - const { type, link } = file.data; + const { type, link } = file; if (link) { return ; @@ -77,7 +77,7 @@ const PlaceholderPrimitive = ({ file, ratio }) => { }; export default function Placeholder({ file, containerCss, ratio, showTag }) { - const { type } = file.data; + const { type } = file; const tag = React.useMemo(() => { if (!showTag) return false; diff --git a/components/core/SlateMediaObject.js b/components/core/SlateMediaObject.js index d82ad5a1..b830e0f4 100644 --- a/components/core/SlateMediaObject.js +++ b/components/core/SlateMediaObject.js @@ -79,7 +79,7 @@ export default class SlateMediaObject extends React.Component { componentDidMount() { const file = this.props.file; if (this.props.isMobile) { - if (file.data.type && file.data.type.startsWith("application/pdf")) { + if (file.type && file.type.startsWith("application/pdf")) { const url = Strings.getURLfromCID(file.cid); this.openLink(url); } @@ -88,7 +88,7 @@ export default class SlateMediaObject extends React.Component { render() { const { file, isMobile } = this.props; - const type = file.data.type || ""; + const type = file.type || ""; if (file.isLink) { return ; diff --git a/components/core/SlateMediaObjectPreview.js b/components/core/SlateMediaObjectPreview.js index a75ab8fa..fdcd571f 100644 --- a/components/core/SlateMediaObjectPreview.js +++ b/components/core/SlateMediaObjectPreview.js @@ -88,7 +88,7 @@ export default class SlateMediaObjectPreview extends React.Component { }; setImage = () => { - let type = this.props.file.data?.type; + let type = this.props.file.type; let coverImage = this.props.file.data?.coverImage; let url; if (type && Validations.isPreviewableImage(type)) { @@ -105,7 +105,7 @@ export default class SlateMediaObjectPreview extends React.Component { render() { const file = this.props.file; - const type = this.props.file.data?.type; + const type = this.props.file.type; const coverImage = this.props.file.data?.coverImage; let url = Utilities.getImageUrlIfExists(file); diff --git a/components/core/SlatePreviewBlock.js b/components/core/SlatePreviewBlock.js index c67e8a8c..64098a97 100644 --- a/components/core/SlatePreviewBlock.js +++ b/components/core/SlatePreviewBlock.js @@ -257,7 +257,7 @@ export class SlatePreviewBlock extends React.Component { if (!objects) { objects = []; for (let file of slate.objects) { - if (Validations.isPreviewableImage(file.data.type)) { + if (Validations.isPreviewableImage(file.type)) { objects.push(file); } if (objects.length >= 4) break; diff --git a/node_common/managers/viewer.js b/node_common/managers/viewer.js index a97ef606..64aa085e 100644 --- a/node_common/managers/viewer.js +++ b/node_common/managers/viewer.js @@ -178,16 +178,19 @@ export const getById = async ({ id }) => { let size = each.size; if (typeof size === "number") { bytes += size; - if (each.data.type && each.data.type.startsWith("image/")) { - imageBytes += size; - } else if (each.data.type && each.data.type.startsWith("video/")) { - videoBytes += size; - } else if (each.data.type && each.data.type.startsWith("audio/")) { - audioBytes += size; - } else if (each.data.type && each.data.type.startsWith("application/epub")) { - epubBytes += size; - } else if (each.data.type && each.data.type.startsWith("application/pdf")) { - pdfBytes += size; + let type = each.type; + if (type) { + if (type.startsWith("image/")) { + imageBytes += size; + } else if (type.startsWith("video/")) { + videoBytes += size; + } else if (type.startsWith("audio/")) { + audioBytes += size; + } else if (type.startsWith("application/epub")) { + epubBytes += size; + } else if (type.startsWith("application/pdf")) { + pdfBytes += size; + } } } diff --git a/node_common/serializers.js b/node_common/serializers.js index e45f0c1d..cdbf7c42 100644 --- a/node_common/serializers.js +++ b/node_common/serializers.js @@ -51,8 +51,8 @@ export const sanitizeFile = (entity) => { createdAt: entity.createdAt, body: entity.body, size: entity.size, + type: entity.type, data: { - type: entity.data?.type, source: entity.data?.source, author: entity.data?.author, blurhash: entity.data?.blurhash, @@ -128,8 +128,8 @@ export const cleanFile = (entity) => { url: entity.url, body: entity.body, size: entity.size, + type: entity.type, // data: { - // type: entity.data?.type, // source: entity.data?.source, // author: entity.data?.author, // blurhash: entity.data?.blurhash, diff --git a/pages/_/slate[dep].js b/pages/_/slate[dep].js index 1562c05b..e2ae4a0e 100644 --- a/pages/_/slate[dep].js +++ b/pages/_/slate[dep].js @@ -220,8 +220,8 @@ export default class SlatePage extends React.Component { if (Strings.isEmpty(image)) { for (let i = 0; i < objects.length; i++) { if ( - objects[i].data.type && - Validations.isPreviewableImage(objects[i].data.type) && + objects[i].type && + Validations.isPreviewableImage(objects[i].type) && objects[i].size && objects[i].size < Constants.linkPreviewSizeLimit ) { @@ -239,7 +239,7 @@ export default class SlatePage extends React.Component { if (object) { title = object.data.name || object.filename; body = !Strings.isEmpty(object.data.body) ? Strings.elide(object.data.body) : ""; - image = object.data.type.includes("image/") ? ( + image = object.type.includes("image/") ? ( Strings.getURLfromCID(object.cid) ) : ( diff --git a/pages/api/data/create-link.js b/pages/api/data/create-link.js index 55a08531..ae5fff49 100644 --- a/pages/api/data/create-link.js +++ b/pages/api/data/create-link.js @@ -71,8 +71,8 @@ export default async (req, res) => { cid: file.cid, isLink: true, url: file.url, + type: "link", data: { - type: "link", name: data.title || "", author: data.author || "", source: data.publisher || "", diff --git a/scenes/SceneSlate.js b/scenes/SceneSlate.js index 75f1a066..049ad387 100644 --- a/scenes/SceneSlate.js +++ b/scenes/SceneSlate.js @@ -234,8 +234,8 @@ export default class SceneSlate extends React.Component { if (!image && objects) { for (let i = 0; i < objects.length; i++) { if ( - objects[i].data.type && - Validations.isPreviewableImage(objects[i].data.type) && + objects[i].type && + Validations.isPreviewableImage(objects[i].type) && objects[i].size && objects[i].size < Constants.linkPreviewSizeLimit ) {