Adding Signature link, need a destination
This commit is contained in:
@@ -1,7 +1,10 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import { getDefaultRegistry } from "@rjsf/core";
|
import { getDefaultRegistry } from "@rjsf/core";
|
||||||
import { FormContextType, RJSFSchema, WidgetProps } from "@rjsf/utils";
|
import { FormContextType, RJSFSchema, WidgetProps } from "@rjsf/utils";
|
||||||
|
import { Button, InputAdornment } from "@mui/material";
|
||||||
import Typography from "@mui/material/Typography";
|
import Typography from "@mui/material/Typography";
|
||||||
|
import TextField from "@mui/material/TextField";
|
||||||
|
import CopyAllIcon from '@mui/icons-material/CopyAll';
|
||||||
|
|
||||||
import ForeignKeyWidget from "./foreign-key";
|
import ForeignKeyWidget from "./foreign-key";
|
||||||
import RichtextWidget from "./richtext";
|
import RichtextWidget from "./richtext";
|
||||||
@@ -18,8 +21,37 @@ export default function CrudTextWidget<T = any, S extends CrudTextRJSFSchema = C
|
|||||||
return <Typography >{schema.const as string}</Typography>;
|
return <Typography >{schema.const as string}</Typography>;
|
||||||
} else if (schema.props?.hasOwnProperty("richtext")) {
|
} else if (schema.props?.hasOwnProperty("richtext")) {
|
||||||
return <RichtextWidget {...props} />;
|
return <RichtextWidget {...props} />;
|
||||||
|
} else if (schema.props?.hasOwnProperty("display") && schema.props.display == "signature-link") {
|
||||||
|
return <SignatureLink {...props} />
|
||||||
} else {
|
} else {
|
||||||
const { widgets: { TextWidget } } = getDefaultRegistry<T,S,F>();
|
const { widgets: { TextWidget } } = getDefaultRegistry<T,S,F>();
|
||||||
return <TextWidget {...props} />;
|
return <TextWidget {...props} />;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const SignatureLink = <T = any, S extends CrudTextRJSFSchema = CrudTextRJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F> )=> {
|
||||||
|
const { label, value } = props;
|
||||||
|
const basePath = "/contracts/signature/";
|
||||||
|
const url = location.origin + basePath + value
|
||||||
|
|
||||||
|
return <TextField
|
||||||
|
label={ label }
|
||||||
|
variant="outlined"
|
||||||
|
disabled={true}
|
||||||
|
value={url}
|
||||||
|
slotProps={{
|
||||||
|
input: {
|
||||||
|
endAdornment: (
|
||||||
|
<InputAdornment position="end">
|
||||||
|
<Button
|
||||||
|
variant="outlined"
|
||||||
|
onClick={() => navigator.clipboard.writeText(url)}
|
||||||
|
color="primary"
|
||||||
|
>
|
||||||
|
<CopyAllIcon />
|
||||||
|
</Button>
|
||||||
|
</InputAdornment>),
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user