ugcinc-render 1.8.110 → 1.8.111

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -4049,6 +4049,18 @@ function InstagramDmComposition(props) {
4049
4049
  const [scrollX, setScrollX] = (0, import_react8.useState)(0);
4050
4050
  const [scrollY, setScrollY] = (0, import_react8.useState)(0);
4051
4051
  const [referenceVisible, setReferenceVisible] = (0, import_react8.useState)(true);
4052
+ const [fontsLoaded, setFontsLoaded] = (0, import_react8.useState)(false);
4053
+ (0, import_react8.useEffect)(() => {
4054
+ const handle = (0, import_remotion9.delayRender)("Loading fonts for InstagramDmComposition");
4055
+ preloadFonts().then(() => {
4056
+ setFontsLoaded(true);
4057
+ (0, import_remotion9.continueRender)(handle);
4058
+ }).catch((err) => {
4059
+ console.error("Failed to load fonts:", err);
4060
+ setFontsLoaded(true);
4061
+ (0, import_remotion9.continueRender)(handle);
4062
+ });
4063
+ }, []);
4052
4064
  const handleZoomChange = (0, import_react8.useCallback)((newZoom, newScrollX, newScrollY) => {
4053
4065
  setZoom(newZoom);
4054
4066
  setScrollX(newScrollX);
@@ -4058,8 +4070,11 @@ function InstagramDmComposition(props) {
4058
4070
  setReferenceVisible((prev) => !prev);
4059
4071
  }, []);
4060
4072
  const { elements, imageUrls } = (0, import_react8.useMemo)(() => {
4073
+ if (!fontsLoaded) {
4074
+ return { elements: [], imageUrls: {} };
4075
+ }
4061
4076
  return convertPropsToElements(props);
4062
- }, [props]);
4077
+ }, [props, fontsLoaded]);
4063
4078
  const colors = getThemeColors(theme);
4064
4079
  const zoomScale = zoom / 100;
4065
4080
  return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
package/dist/index.mjs CHANGED
@@ -1947,8 +1947,8 @@ function ScreenshotAnimation({
1947
1947
  }
1948
1948
 
1949
1949
  // src/compositions/InstagramDmComposition/index.tsx
1950
- import { useCallback as useCallback2, useMemo as useMemo7, useState as useState3 } from "react";
1951
- import { AbsoluteFill as AbsoluteFill5, Img as Img4 } from "remotion";
1950
+ import { useCallback as useCallback2, useEffect as useEffect3, useMemo as useMemo7, useState as useState3 } from "react";
1951
+ import { AbsoluteFill as AbsoluteFill5, Img as Img4, continueRender as continueRender2, delayRender as delayRender2 } from "remotion";
1952
1952
 
1953
1953
  // src/compositions/InstagramDmComposition/theme.ts
1954
1954
  var IG_THEME_COLORS = {
@@ -3118,6 +3118,18 @@ function InstagramDmComposition(props) {
3118
3118
  const [scrollX, setScrollX] = useState3(0);
3119
3119
  const [scrollY, setScrollY] = useState3(0);
3120
3120
  const [referenceVisible, setReferenceVisible] = useState3(true);
3121
+ const [fontsLoaded, setFontsLoaded] = useState3(false);
3122
+ useEffect3(() => {
3123
+ const handle = delayRender2("Loading fonts for InstagramDmComposition");
3124
+ preloadFonts().then(() => {
3125
+ setFontsLoaded(true);
3126
+ continueRender2(handle);
3127
+ }).catch((err) => {
3128
+ console.error("Failed to load fonts:", err);
3129
+ setFontsLoaded(true);
3130
+ continueRender2(handle);
3131
+ });
3132
+ }, []);
3121
3133
  const handleZoomChange = useCallback2((newZoom, newScrollX, newScrollY) => {
3122
3134
  setZoom(newZoom);
3123
3135
  setScrollX(newScrollX);
@@ -3127,8 +3139,11 @@ function InstagramDmComposition(props) {
3127
3139
  setReferenceVisible((prev) => !prev);
3128
3140
  }, []);
3129
3141
  const { elements, imageUrls } = useMemo7(() => {
3142
+ if (!fontsLoaded) {
3143
+ return { elements: [], imageUrls: {} };
3144
+ }
3130
3145
  return convertPropsToElements(props);
3131
- }, [props]);
3146
+ }, [props, fontsLoaded]);
3132
3147
  const colors = getThemeColors(theme);
3133
3148
  const zoomScale = zoom / 100;
3134
3149
  return /* @__PURE__ */ jsxs8(
@@ -3591,10 +3606,10 @@ function MediaBubble({
3591
3606
  }
3592
3607
 
3593
3608
  // src/hooks/index.ts
3594
- import { useEffect as useEffect3, useState as useState4, useMemo as useMemo8 } from "react";
3609
+ import { useEffect as useEffect4, useState as useState4, useMemo as useMemo8 } from "react";
3595
3610
  function useFontsLoaded() {
3596
3611
  const [loaded, setLoaded] = useState4(areFontsLoaded());
3597
- useEffect3(() => {
3612
+ useEffect4(() => {
3598
3613
  if (!loaded) {
3599
3614
  preloadFonts().then(() => setLoaded(true)).catch(console.error);
3600
3615
  }
@@ -3603,7 +3618,7 @@ function useFontsLoaded() {
3603
3618
  }
3604
3619
  function useImageLoader(src) {
3605
3620
  const [image, setImage] = useState4(null);
3606
- useEffect3(() => {
3621
+ useEffect4(() => {
3607
3622
  if (!src) {
3608
3623
  setImage(null);
3609
3624
  return;
@@ -3625,7 +3640,7 @@ function useImageLoader(src) {
3625
3640
  function useImagePreloader(sources) {
3626
3641
  const [images, setImages] = useState4({});
3627
3642
  const [loaded, setLoaded] = useState4(false);
3628
- useEffect3(() => {
3643
+ useEffect4(() => {
3629
3644
  const entries = Object.entries(sources);
3630
3645
  if (entries.length === 0) {
3631
3646
  setLoaded(true);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugcinc-render",
3
- "version": "1.8.110",
3
+ "version": "1.8.111",
4
4
  "description": "Unified rendering package for UGC Inc - shared types, components, and compositions for pixel-perfect client/server rendering",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",