Skip to content

Commit

Permalink
Merge pull request #181 from gridaco/migrate-vanilla-preview
Browse files Browse the repository at this point in the history
Migrate `vanilla-preview` to `@code-editor/vanilla-preview`
  • Loading branch information
softmarshmallow committed Nov 10, 2021
2 parents afe37c3 + 2f58315 commit 05d9661
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 159 deletions.
4 changes: 2 additions & 2 deletions packages/ui-previewer/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
"version": "0.0.0",
"private": false,
"dependencies": {
"react-use-size": "^2.0.4"
"@code-editor/vanilla-preview": "^0.0.2"
}
}
}
1 change: 0 additions & 1 deletion packages/ui-previewer/preview-responsive/README.md

This file was deleted.

108 changes: 0 additions & 108 deletions packages/ui-previewer/preview-responsive/index.tsx

This file was deleted.

69 changes: 21 additions & 48 deletions packages/ui-previewer/preview/index.tsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
import React, { useCallback, useEffect, useRef, useState } from "react";
import React, { useEffect, useRef } from "react";
import styled from "@emotion/styled";
import {
ResponsivePreview,
ResponsivePreviewProps,
} from "../preview-responsive";
import VanillaPreview, {
ResponsiveContentIframeProps,
} from "@code-editor/vanilla-preview";
import { StaticPreview, StaticPreviewProps } from "../preview-static";
import { handle_wrap_bg_color, PreviewEmpty } from "../components";
import { useScrollTriggeredAnimation } from "app/lib/components/motions";
import { useSetRecoilState, useRecoilState } from "recoil";
import { useSetRecoilState } from "recoil";
import { hide_navigation } from "app/lib/main/global-state-atoms";
import { useComponentSize } from "react-use-size";

interface PreviewProps {
auto?: boolean;
Expand All @@ -30,12 +28,7 @@ interface PreviewProps {
height?: number;
}

interface SizeProps {
w?: number;
h?: number;
}

type Subscenario = StaticPreviewProps | ResponsivePreviewProps;
type Subscenario = StaticPreviewProps | ResponsiveContentIframeProps;
type Props = PreviewProps & Subscenario;

export function Preview(props: Props) {
Expand Down Expand Up @@ -76,42 +69,29 @@ export function Preview(props: Props) {
function Content({ previewInfo }: { previewInfo: Props }) {
switch (previewInfo.type) {
case "responsive": {
return <ResponsiveRender {...previewInfo} />;
const _DEFAULT_MARGIN = 12;
const _DEFAULT_SHADOW = "0px 4px 64px rgba(160, 160, 160, 0.18)";
const _DEFAULT_BORDER_RADIUS = 4;

return (
<VanillaPreview
{...previewInfo}
margin={_DEFAULT_MARGIN}
borderRadius={_DEFAULT_BORDER_RADIUS}
boxShadow={_DEFAULT_SHADOW}
/>
);
}
case "static": {
return (
<Render heightscale={1}>
<StaticContainer heightscale={1}>
<StaticPreview {...previewInfo} />
</Render>
</StaticContainer>
);
}
}
}

function ResponsiveRender(props: ResponsivePreviewProps) {
const { ref: sizingref, height, width } = useComponentSize();
// TODO: do not remove comments here. these are required for below height calculation.
// DON'T REMOVE
// const [renderheightScaleFactor, setRenderheightScaleFactor] = useState(1);

return (
<Render
ref={sizingref}
heightscale={1}
// DON'T REMOVE
// heightscale={renderheightScaleFactor}
>
<ResponsivePreview
previewInfo={props}
parent={{ width, height }}
onScaleChange={() => {}}
// DON'T REMOVE
// onScaleChange={setRenderheightScaleFactor}
/>
</Render>
);
}

const PreviewWrap = styled.div<{
padding: number;
initialPreviewHeight: number;
Expand All @@ -130,19 +110,12 @@ const PreviewWrap = styled.div<{
overflow-x: hidden;
`;

const Render = styled.div<{ heightscale: number }>`
const StaticContainer = styled.div<{ heightscale: number }>`
display: flex;
flex-direction: column;
align-items: center;
align-content: center;
justify-content: center;
flex: 0 1 0;
/* FIXME: this should be a height
// this should work, but the flex is making inner iframe height to shrink.
height: max(${(props) => props.heightscale * 100}%, 100%);
ref:
- https://stackoverflow.com/questions/51288769/scaling-a-flexbox-child-with-transform-leaves-empty-space
- https://www.reddit.com/r/css/comments/q5cvei/css_fitcontent_on_parent_wont_work_for_scaled_item/
*/
min-height: 100%;
`;
7 changes: 7 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1219,6 +1219,13 @@
exec-sh "^0.3.2"
minimist "^1.2.0"

"@code-editor/vanilla-preview@^0.0.2":
version "0.0.2"
resolved "https://registry.yarnpkg.com/@code-editor/vanilla-preview/-/vanilla-preview-0.0.2.tgz#b199a605f988294fa46e18513482d696a2b26116"
integrity sha512-bDDx4KvV8+lYX/QzIOMERFiwf9KVA59Ht68fwtJvnP3cIK12x8l30YazXSiF591Ks5yRrRU4NauFrwjFmOUX+w==
dependencies:
react-use-size "^2.0.4"

"@code-ui/color-scheme@0.0.0", "@code-ui/color-scheme@^0.0.0":
version "0.0.0"
resolved "https://registry.yarnpkg.com/@code-ui/color-scheme/-/color-scheme-0.0.0.tgz#9f7b1d32e33193166c2958dec999c9fbf9009c8d"
Expand Down

0 comments on commit 05d9661

Please sign in to comment.