Remove unused ResumeComponent, ServicesComponent, and related sections. Update theming for SupportThisSiteModal, adjust DogecoinIcon, and refine Cloudflare worker references.

This commit is contained in:
geoffsee
2025-06-24 15:51:39 -04:00
parent bdbc8de6d5
commit 004ec580d3
12 changed files with 30 additions and 318 deletions

View File

@@ -15,7 +15,7 @@
"server:dev": "bun build:client && (cd packages/server && bun run dev)", "server:dev": "bun build:client && (cd packages/server && bun run dev)",
"build": "(cd packages/cloudflare-workers/open-gsio && bun run deploy:dry-run)", "build": "(cd packages/cloudflare-workers/open-gsio && bun run deploy:dry-run)",
"build:client": "(cd packages/client && bun run vite build)", "build:client": "(cd packages/client && bun run vite build)",
"deploy": "(cd packages/cloudflare-workers && bun run deploy)", "deploy": "(cd packages/cloudflare-workers/open-gsio && bun run deploy)",
"deploy:secrets": "wrangler secret bulk secrets.json -c packages/cloudflare-workers/open-gsio/wrangler.jsonc", "deploy:secrets": "wrangler secret bulk secrets.json -c packages/cloudflare-workers/open-gsio/wrangler.jsonc",
"openai:local:mlx": "packages/scripts/start_inference_server.sh mlx-omni-server", "openai:local:mlx": "packages/scripts/start_inference_server.sh mlx-omni-server",
"openai:local:ollama": "packages/scripts/start_inference_server.sh ollama", "openai:local:ollama": "packages/scripts/start_inference_server.sh ollama",

View File

@@ -6,6 +6,7 @@ const TealDogecoinIcon = (props) => (
as="svg" as="svg"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24" viewBox="0 0 24 24"
stroke={"currentColor"}
fill="currentColor" fill="currentColor"
boxSize={props.boxSize || "1em"} boxSize={props.boxSize || "1em"}
{...props} {...props}
@@ -26,8 +27,8 @@ const TealDogecoinIcon = (props) => (
fill-rule="evenodd" fill-rule="evenodd"
clip-rule="evenodd" clip-rule="evenodd"
d="M17.5001 9.54053C16.4888 6.92891 13.9888 6.44507 13.9888 6.44507H6.85606L6.88358 9.10523H8.30406V15.0454H6.85596V17.7007H13.7913C15.4628 17.7007 16.8026 16.0211 16.8026 16.0211C18.9482 12.9758 17.5 9.54053 17.5 9.54053H17.5001ZM13.8285 14.2314C13.8285 14.2314 13.2845 15.0163 12.6927 15.0163H11.5087L11.4806 9.11173H13.0001C13.0001 9.11173 13.7041 9.25894 14.1959 10.6521C14.1959 10.6521 14.848 12.6468 13.8285 14.2314Z" d="M17.5001 9.54053C16.4888 6.92891 13.9888 6.44507 13.9888 6.44507H6.85606L6.88358 9.10523H8.30406V15.0454H6.85596V17.7007H13.7913C15.4628 17.7007 16.8026 16.0211 16.8026 16.0211C18.9482 12.9758 17.5 9.54053 17.5 9.54053H17.5001ZM13.8285 14.2314C13.8285 14.2314 13.2845 15.0163 12.6927 15.0163H11.5087L11.4806 9.11173H13.0001C13.0001 9.11173 13.7041 9.25894 14.1959 10.6521C14.1959 10.6521 14.848 12.6468 13.8285 14.2314Z"
fill="white" // fill="white"
fill-opacity="0.8" // fill-opacity="0.8"
/> />
</Box> </Box>
); );

View File

@@ -1,62 +0,0 @@
import React, { useCallback, useMemo } from "react";
import { Box, Flex, useMediaQuery } from "@chakra-ui/react";
import { resumeData } from "../../static-data/resume_data";
import SectionContent from "./SectionContent";
import SectionButton from "./SectionButton";
const sections = ["professionalSummary", "skills", "experience", "education"];
export default function ResumeComponent() {
const [activeSection, setActiveSection] = React.useState(
"professionalSummary",
);
const [isMobile] = useMediaQuery("(max-width: 1243px)");
const handleSectionClick = useCallback((section) => {
setActiveSection(section);
}, []);
const capitalizeFirstLetter = useCallback((word) => {
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
}, []);
const sectionButtons = useMemo(
() =>
sections.map((section) => (
<SectionButton
key={section}
onClick={() => handleSectionClick(section)}
activeSection={activeSection}
section={section}
mobile={isMobile}
callbackfn={capitalizeFirstLetter}
/>
)),
[activeSection, isMobile, handleSectionClick, capitalizeFirstLetter],
);
return (
<Box p={"unset"}>
<Flex
direction={isMobile ? "column" : "row"}
mb={8}
wrap="nowrap"
gap={isMobile ? 2 : 4}
minWidth="0"
>
{sectionButtons}
</Flex>
<Box
bg="background.secondary"
color="text.primary"
borderRadius="md"
boxShadow="md"
borderWidth={1}
borderColor="brand.300"
minHeight="300px"
>
<SectionContent activeSection={activeSection} resumeData={resumeData} />
</Box>
</Box>
);
}

View File

@@ -1,32 +0,0 @@
import React from "react";
import { Button } from "@chakra-ui/react";
import { ChevronRight } from "lucide-react";
function SectionButton(props: {
onClick: () => void;
activeSection: string;
section: string;
mobile: boolean;
callbackfn: (word) => string;
}) {
return (
<Button
mt={1}
onClick={props.onClick}
variant={props.activeSection === props.section ? "solid" : "outline"}
colorScheme="brand"
rightIcon={<ChevronRight size={16} />}
size="md"
width={props.mobile ? "100%" : "auto"}
>
{props.section
.replace(/([A-Z])/g, " $1")
.trim()
.split(" ")
.map(props.callbackfn)
.join(" ")}
</Button>
);
}
export default SectionButton;

View File

@@ -1,98 +0,0 @@
import React from "react";
import {
Box,
Grid,
GridItem,
Heading,
ListItem,
Text,
UnorderedList,
VStack,
} from "@chakra-ui/react";
const fontSize = "md";
const ProfessionalSummary = ({ professionalSummary }) => (
<Box>
<Grid
templateColumns="1fr"
gap={4}
maxW={["100%", "100%", "100%"]}
mx="auto"
className="about-container"
>
<GridItem
colSpan={1}
maxW={["100%", "100%", "container.md"]}
justifySelf="center"
minH={"100%"}
>
<Grid templateColumns="1fr" gap={4} overflowY={"auto"}>
<GridItem>
<Text fontSize="md">{professionalSummary}</Text>
</GridItem>
</Grid>
</GridItem>
</Grid>
</Box>
);
const Skills = ({ skills }) => (
<VStack align={"baseline"} spacing={6} mb={4}>
<UnorderedList spacing={2} mb={0}>
<Box>
{skills?.map((skill, index) => (
<ListItem p={1} key={index}>
{skill}
</ListItem>
))}
</Box>
</UnorderedList>
</VStack>
);
const Experience = ({ experience }) => (
<VStack align="start" spacing={6} mb={4}>
{experience?.map((job, index) => (
<Box key={index} width="100%">
<Heading as="h3" size="md" mb={2}>
{job.title}
</Heading>
<Text fontWeight="bold">{job.company}</Text>
<Text color="gray.500" mb={2}>
{job.timeline}
</Text>
<Text>{job.description}</Text>
</Box>
))}
</VStack>
);
const Education = ({ education }) => (
<UnorderedList spacing={2} mb={4}>
{education?.map((edu, index) => <ListItem key={index}>{edu}</ListItem>)}
</UnorderedList>
);
const SectionContent = ({ activeSection, resumeData }) => {
const components = {
professionalSummary: ProfessionalSummary,
skills: Skills,
experience: Experience,
education: Education,
};
const ActiveComponent = components[activeSection];
return (
<Box p={4} minHeight="300px" width="100%">
{ActiveComponent ? (
<ActiveComponent {...resumeData} />
) : (
<Text>Select a section to view details.</Text>
)}
</Box>
);
};
export default SectionContent;

View File

@@ -1,64 +0,0 @@
// ServicesComponent.js
import React, { useCallback, useMemo } from "react";
import { Box, Flex, useMediaQuery } from "@chakra-ui/react";
import { servicesData } from "../../static-data/services_data";
import SectionButton from "../resume/SectionButton";
import ServicesSectionContent from "./ServicesComponentSection";
const sections = ["servicesOverview", "offerings"];
export default function ServicesComponent() {
const [activeSection, setActiveSection] = React.useState("servicesOverview");
const [isMobile] = useMediaQuery("(max-width: 1243px)");
const handleSectionClick = useCallback((section) => {
setActiveSection(section);
}, []);
const capitalizeFirstLetter = useCallback((word) => {
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
}, []);
const sectionButtons = useMemo(
() =>
sections.map((section) => (
<SectionButton
key={section}
onClick={() => handleSectionClick(section)}
activeSection={activeSection}
section={section}
mobile={isMobile}
callbackfn={capitalizeFirstLetter}
/>
)),
[activeSection, isMobile, handleSectionClick, capitalizeFirstLetter],
);
return (
<Box p={"unset"}>
<Flex
direction={isMobile ? "column" : "row"}
mb={8}
wrap="nowrap"
gap={isMobile ? 2 : 4}
minWidth="0" // Ensures flex items can shrink if needed
>
{sectionButtons}
</Flex>
<Box
bg="background.secondary"
color="text.primary"
borderRadius="md"
boxShadow="md"
borderWidth={1}
borderColor="brand.300"
minHeight="300px"
>
<ServicesSectionContent
activeSection={activeSection}
data={servicesData}
/>
</Box>
</Box>
);
}

View File

@@ -1,40 +0,0 @@
import React from "react";
import { Box, Heading, Text, VStack } from "@chakra-ui/react";
const ServicesOverview = ({ servicesOverview }) => (
<Text fontSize="md">{servicesOverview}</Text>
);
const Offerings = ({ offerings }) => (
<VStack align="start" spacing={6} mb={4}>
{offerings.map((service, index) => (
<Box key={index}>
<Heading as="h3" size="md" mb={2}>
{service.title}
</Heading>
<Text mb={4}>{service.description}</Text>
</Box>
))}
</VStack>
);
const ServicesSectionContent = ({ activeSection, data }) => {
const components = {
servicesOverview: ServicesOverview,
offerings: Offerings,
};
const ActiveComponent = components[activeSection];
return (
<Box p={4} minHeight="300px" width="100%">
{ActiveComponent ? (
<ActiveComponent {...data} />
) : (
<Text>Select a section to view details.</Text>
)}
</Box>
);
};
export default ServicesSectionContent;

View File

@@ -89,8 +89,11 @@ const SupportThisSiteModal = observer(({ isOpen, onClose, zIndex }) => {
motionPreset="slideInBottom" motionPreset="slideInBottom"
zIndex={zIndex} zIndex={zIndex}
> >
<ModalOverlay /> <ModalOverlay
<ModalContent bg="gray.800" color="text.primary"> bg='bg.primary'
backdropFilter='blur(10px) hue-rotate(90deg)'
/>
<ModalContent bg="bg.primary" color="text.primary" >
<ModalHeader textAlign="center" mb={2}> <ModalHeader textAlign="center" mb={2}>
Support Support
</ModalHeader> </ModalHeader>
@@ -103,7 +106,7 @@ const SupportThisSiteModal = observer(({ isOpen, onClose, zIndex }) => {
<Tabs <Tabs
align="center" align="center"
variant="soft-rounded" variant="soft-rounded"
colorScheme="teal" // colorScheme="teal"
isFitted isFitted
> >
<TabList mb={2} w={"20%"}> <TabList mb={2} w={"20%"}>
@@ -111,11 +114,13 @@ const SupportThisSiteModal = observer(({ isOpen, onClose, zIndex }) => {
<Tab <Tab
p={4} p={4}
key={method.name} key={method.name}
color={"text.primary"}
bg={clientTransactionStore.selectedMethod=== method.name ? "bg.primary": "bg.secondary"}
onClick={() => { onClick={() => {
clientTransactionStore.setSelectedMethod(method.name); clientTransactionStore.setSelectedMethod(method.name);
}} }}
> >
<Box p={1} w={"fit-content"}> <Box p={1} w={"fit-content"} >
<method.icon />{" "} <method.icon />{" "}
</Box> </Box>
{method.name} {method.name}
@@ -137,8 +142,8 @@ const SupportThisSiteModal = observer(({ isOpen, onClose, zIndex }) => {
clientTransactionStore.setDonerId(e.target.value) clientTransactionStore.setDonerId(e.target.value)
} }
type="text" type="text"
bg="gray.700" bg="bg.secondary"
color="white" color="text.primary"
w="100%" w="100%"
/> />
<Text>Enter the amount you wish to donate:</Text> <Text>Enter the amount you wish to donate:</Text>
@@ -151,14 +156,14 @@ const SupportThisSiteModal = observer(({ isOpen, onClose, zIndex }) => {
clientTransactionStore.setAmount(e.target.value) clientTransactionStore.setAmount(e.target.value)
} }
type="number" type="number"
bg="gray.700" bg="bg.secondary"
color="white" // color="white"
w="100%" w="100%"
/> />
<Button <Button
onClick={handleConfirmAmount} onClick={handleConfirmAmount}
size="md" size="md"
colorScheme="teal" // colorScheme="teal"
> >
Confirm Amount Confirm Amount
</Button> </Button>
@@ -181,7 +186,7 @@ const SupportThisSiteModal = observer(({ isOpen, onClose, zIndex }) => {
</Box> </Box>
<Box <Box
bg="gray.700" bg="bg.secondary"
p={4} p={4}
borderRadius="md" borderRadius="md"
wordBreak="unset" wordBreak="unset"
@@ -196,7 +201,7 @@ const SupportThisSiteModal = observer(({ isOpen, onClose, zIndex }) => {
<Button <Button
onClick={handleCopy} onClick={handleCopy}
size="md" size="md"
colorScheme="teal" // colorScheme="teal"
mb={4} mb={4}
> >
{hasCopied ? "Address Copied!" : "Copy Address"} {hasCopied ? "Address Copied!" : "Copy Address"}
@@ -213,7 +218,7 @@ const SupportThisSiteModal = observer(({ isOpen, onClose, zIndex }) => {
</VStack> </VStack>
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<Button variant="outline" mr={3} onClick={onClose} colorScheme="gray"> <Button variant="outline" mr={3} onClick={onClose} >
Close Close
</Button> </Button>
</ModalFooter> </ModalFooter>

View File

@@ -1,5 +1,5 @@
import Server from "@open-gsio/server"; import Server from "@open-gsio/server";
import ServerCoordinator from "packages/server/durable-objects/ServerCoordinator"; import ServerCoordinator from "@open-gsio/server/durable-objects/ServerCoordinator";
export {ServerCoordinator} export {ServerCoordinator}

View File

@@ -11,6 +11,8 @@
"dependencies": { "dependencies": {
"@cloudflare/vite-plugin": "^1.3.1", "@cloudflare/vite-plugin": "^1.3.1",
"vite": "6.3.5", "vite": "6.3.5",
"wrangler": "^4.18.0" "wrangler": "^4.18.0",
"@open-gsio/server": "workspace:*",
"@open-gsio/client": "workspace:*"
} }
} }

View File

@@ -28,7 +28,7 @@
"migrations": [ "migrations": [
{ {
"new_classes": [ "new_classes": [
"SiteCoordinator" "ServerCoordinator"
], ],
"tag": "v1" "tag": "v1"
} }

View File

@@ -1,12 +1,12 @@
{ {
"OPENAI_API_KEY": "", "OPENAI_API_KEY": "",
"OPENAI_API_ENDPOINT": "", "OPENAI_API_ENDPOINT": "",
"PERIGON_API_KEY": "",
"EVENTSOURCE_HOST": "",
"GROQ_API_KEY": "", "GROQ_API_KEY": "",
"ANTHROPIC_API_KEY": "", "ANTHROPIC_API_KEY": "",
"FIREWORKS_API_KEY": "", "FIREWORKS_API_KEY": "",
"GEMINI_API_KEY": "", "GEMINI_API_KEY": "",
"XAI_API_KEY": "", "XAI_API_KEY": "",
"CEREBRAS_API_KEY": "" "CEREBRAS_API_KEY": "",
} "CLOUDFLARE_API_KEY": "",
"CLOUDFLARE_ACCOUNT_ID": ""
}