fix: file reverted to initial version

This commit is contained in:
abdulhakkeempa 2024-08-27 18:03:27 +05:30
parent 4ecb811fa3
commit 856a084cc2

View File

@ -6,14 +6,9 @@ from reflex.event import EventHandler
from reflex.utils import types from reflex.utils import types
from reflex.vars import Var from reflex.vars import Var
from pathlib import Path
from constants.base import Dirs
import requests
import os
from .base import NextComponent from .base import NextComponent
# implementing image call back technique here # implementing image call back technique here
class Image(NextComponent): class Image(NextComponent):
"""Display an image.""" """Display an image."""
@ -67,9 +62,6 @@ class Image(NextComponent):
# Fires when the image has an error. # Fires when the image has an error.
on_error: EventHandler[lambda: []] on_error: EventHandler[lambda: []]
# Fires when the src image is not provided.
fallback: Var[str]
@classmethod @classmethod
def create( def create(
cls, cls,
@ -92,42 +84,6 @@ class Image(NextComponent):
style = props.get("style", {}) style = props.get("style", {})
DEFAULT_W_H = "100%" DEFAULT_W_H = "100%"
def validate_src_image(src):
"""
Validates the 'src' parameter for the Image component.
Args:
src: The source parameter (local file path, web URL, or Pillow Image).
Returns:
Valid source (src) or raises an error.
"""
try:
if isinstance(src, str):
if src.startswith("/"):
full_path = Path.cwd() / Dirs.APP_ASSETS / src.strip("/")
if os.path.exists(full_path):
return True
else:
raise FileNotFoundError(f"Local image not found: {full_path}")
elif src.startswith("http"):
try:
response = requests.head(src)
if response.status_code == 200:
return True
else:
raise ValueError(f"Invalid web URL: {src}")
except requests.RequestException:
raise ValueError(f"Failed to validate web URL: {src}")
else:
raise ValueError(f"Unsupported src format: {src}")
elif isinstance(src, Image.Image):
return True
else:
raise ValueError(f"Invalid src type: {type(src)}")
except Exception as e:
print(f"Error: {e}")
return False
def check_prop_type(prop_name, prop_value): def check_prop_type(prop_name, prop_value):
if types.check_prop_in_allowed_types(prop_value, allowed_types=[int]): if types.check_prop_in_allowed_types(prop_value, allowed_types=[int]):
props[prop_name] = prop_value props[prop_name] = prop_value
@ -139,17 +95,6 @@ class Image(NextComponent):
props[prop_name] = 0 props[prop_name] = 0
style[prop_name] = DEFAULT_W_H style[prop_name] = DEFAULT_W_H
src = props.get("src", "")
if not validate_src_image(src):
if props.get("fallback"):
if validate_src_image(props.get("fallback")):
props["src"] = props.get("fallback")
else:
raise ValueError(f"Invalid fallback image: {props.get('fallback')}")
else:
raise ValueError(f"Invalid src image: {src}")
check_prop_type("width", width) check_prop_type("width", width)
check_prop_type("height", height) check_prop_type("height", height)