aidevm / assets /AiStyleTransfer-bZypLQC9.js
admin08077's picture
Upload 107 files
63c17a0 verified
import{r as s,j as e}from"./react-D_B_5QVd.js";import{t as y,S as j,L as x,M as b}from"./index-BdwitBZy.js";import"./jszip-C9ownNzX.js";import"./react-dom-EAO2-NBm.js";import"./scheduler-DYLXRpC5.js";import"./@google-4tyssLU_.js";import"./marked-CesSW9Du.js";import"./idb-Dob3nYDb.js";const g="function my_func(x,y){return x+y;}",N=`- Use camelCase for function names.
- Add a space after commas in argument lists.
- Use semicolons at the end of statements.`,I=()=>{const[r,f]=s.useState(g),[a,u]=s.useState(N),[l,d]=s.useState(""),[o,m]=s.useState(!1),[i,c]=s.useState(""),p=s.useCallback(async()=>{if(!r.trim()||!a.trim()){c("Please provide both code and a style guide.");return}m(!0),c(""),d("");try{const t=y({code:r,styleGuide:a});let n="";for await(const h of t)n+=h,d(n)}catch(t){const n=t instanceof Error?t.message:"An unknown error occurred.";c(`Failed to transfer style: ${n}`)}finally{m(!1)}},[r,a]);return e.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8 text-text-primary",children:[e.jsxs("header",{className:"mb-6",children:[e.jsxs("h1",{className:"text-3xl font-bold flex items-center",children:[e.jsx(j,{}),e.jsx("span",{className:"ml-3",children:"AI Code Style Transfer"})]}),e.jsx("p",{className:"text-text-secondary mt-1",children:"Rewrite code to match a specific style guide using AI."})]}),e.jsxs("div",{className:"flex-grow flex flex-col gap-4 min-h-0",children:[e.jsxs("div",{className:"flex flex-col flex-1 min-h-0",children:[e.jsx("label",{htmlFor:"input-code",className:"text-sm font-medium text-text-secondary mb-2",children:"Original Code"}),e.jsx("textarea",{id:"input-code",value:r,onChange:t=>f(t.target.value),className:"flex-grow p-4 bg-surface border border-border rounded-md resize-y font-mono text-sm"})]}),e.jsxs("div",{className:"flex flex-col flex-1 min-h-0",children:[e.jsx("label",{htmlFor:"style-guide",className:"text-sm font-medium text-text-secondary mb-2",children:"Style Guide"}),e.jsx("textarea",{id:"style-guide",value:a,onChange:t=>u(t.target.value),className:"flex-grow p-4 bg-surface border border-border rounded-md resize-y font-mono text-sm"})]}),e.jsx("div",{className:"flex-shrink-0",children:e.jsx("button",{onClick:p,disabled:o,className:"btn-primary w-full max-w-xs mx-auto flex items-center justify-center px-6 py-3",children:o?e.jsx(x,{}):"Rewrite Code"})}),e.jsxs("div",{className:"flex flex-col flex-1 min-h-0",children:[e.jsx("label",{className:"text-sm font-medium text-text-secondary mb-2",children:"Rewritten Code"}),e.jsxs("div",{className:"flex-grow p-1 bg-background border border-border rounded-md overflow-y-auto",children:[o&&!l&&e.jsx("div",{className:"flex items-center justify-center h-full",children:e.jsx(x,{})}),i&&e.jsx("p",{className:"p-4 text-red-500",children:i}),l&&e.jsx(b,{content:l}),!o&&!l&&!i&&e.jsx("div",{className:"text-text-secondary h-full flex items-center justify-center",children:"Rewritten code will appear here."})]})]})]})]})};export{I as AiStyleTransfer};
//# sourceMappingURL=AiStyleTransfer-bZypLQC9.js.map