Build/Refactor: lint pre-commit hook and reformat repo to spec (#314)

* build/refactor: move lint/prettier packages to project root, install husky, add pre-commit hook

* refactor: reformat files

* build: put full eslintrc back with all rules
This commit is contained in:
Dan Orlando 2023-05-18 11:09:31 -07:00 committed by GitHub
parent 8d75b25104
commit 7fdc862042
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
157 changed files with 4836 additions and 2403 deletions

View file

@ -52,7 +52,7 @@ export default function ExportModel({ open, onOpenChange }) {
setRecursive(true);
}, [open]);
const _setType = newType => {
const _setType = (newType) => {
const exportBranchesSupport = newType === 'json' || newType === 'csv' || newType === 'webpage';
const exportOptionsSupport = newType !== 'csv' && newType !== 'screenshot';
@ -66,7 +66,13 @@ export default function ExportModel({ open, onOpenChange }) {
// return an object or an array based on branches and recursive option
// messageId is used to get siblindIdx from recoil snapshot
const buildMessageTree = async ({ messageId, message, messages, branches = false, recursive = false }) => {
const buildMessageTree = async ({
messageId,
message,
messages,
branches = false,
recursive = false
}) => {
let children = [];
if (messages?.length)
if (branches)
@ -137,21 +143,39 @@ export default function ExportModel({ open, onOpenChange }) {
extension: 'csv',
exportType: exportFromJSON.types.csv,
beforeTableEncode: entries => [
{ fieldName: 'sender', fieldValues: entries.find(e => e.fieldName == 'sender').fieldValues },
{
fieldName: 'sender',
fieldValues: entries.find(e => e.fieldName == 'sender').fieldValues
},
{ fieldName: 'text', fieldValues: entries.find(e => e.fieldName == 'text').fieldValues },
{
fieldName: 'isCreatedByUser',
fieldValues: entries.find(e => e.fieldName == 'isCreatedByUser').fieldValues
},
{ fieldName: 'error', fieldValues: entries.find(e => e.fieldName == 'error').fieldValues },
{ fieldName: 'unfinished', fieldValues: entries.find(e => e.fieldName == 'unfinished').fieldValues },
{ fieldName: 'cancelled', fieldValues: entries.find(e => e.fieldName == 'cancelled').fieldValues },
{ fieldName: 'messageId', fieldValues: entries.find(e => e.fieldName == 'messageId').fieldValues },
{
fieldName: 'error',
fieldValues: entries.find(e => e.fieldName == 'error').fieldValues
},
{
fieldName: 'unfinished',
fieldValues: entries.find(e => e.fieldName == 'unfinished').fieldValues
},
{
fieldName: 'cancelled',
fieldValues: entries.find(e => e.fieldName == 'cancelled').fieldValues
},
{
fieldName: 'messageId',
fieldValues: entries.find(e => e.fieldName == 'messageId').fieldValues
},
{
fieldName: 'parentMessageId',
fieldValues: entries.find(e => e.fieldName == 'parentMessageId').fieldValues
},
{ fieldName: 'createdAt', fieldValues: entries.find(e => e.fieldName == 'createdAt').fieldValues }
{
fieldName: 'createdAt',
fieldValues: entries.find(e => e.fieldName == 'createdAt').fieldValues
}
]
});
};
@ -284,10 +308,7 @@ export default function ExportModel({ open, onOpenChange }) {
'rounded-md border border-gray-200 focus:border-slate-400 focus:bg-gray-50 bg-transparent text-sm shadow-[0_0_10px_rgba(0,0,0,0.05)] outline-none placeholder:text-gray-400 focus:outline-none focus:ring-gray-400 focus:ring-opacity-20 focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-500 dark:bg-gray-700 focus:dark:bg-gray-600 dark:text-gray-50 dark:shadow-[0_0_15px_rgba(0,0,0,0.10)] dark:focus:border-gray-400 dark:focus:outline-none dark:focus:ring-0 dark:focus:ring-gray-400 dark:focus:ring-offset-0';
return (
<Dialog
open={open}
onOpenChange={onOpenChange}
>
<Dialog open={open} onOpenChange={onOpenChange}>
<DialogTemplate
title="Export conversation"
className="max-w-full sm:max-w-2xl"
@ -295,10 +316,7 @@ export default function ExportModel({ open, onOpenChange }) {
<div className="flex w-full flex-col items-center gap-6">
<div className="grid w-full gap-6 sm:grid-cols-2">
<div className="col-span-1 flex flex-col items-start justify-start gap-2">
<Label
htmlFor="filename"
className="text-left text-sm font-medium"
>
<Label htmlFor="filename" className="text-left text-sm font-medium">
Filename
</Label>
<Input
@ -313,10 +331,7 @@ export default function ExportModel({ open, onOpenChange }) {
/>
</div>
<div className="col-span-1 flex flex-col items-start justify-start gap-2">
<Label
htmlFor="type"
className="text-left text-sm font-medium"
>
<Label htmlFor="type" className="text-left text-sm font-medium">
Type
</Label>
<Dropdown
@ -335,10 +350,7 @@ export default function ExportModel({ open, onOpenChange }) {
<div className="grid w-full gap-6 sm:grid-cols-2">
<div className="col-span-1 flex flex-col items-start justify-start gap-2">
<div className="grid w-full items-center gap-2">
<Label
htmlFor="includeOptions"
className="text-left text-sm font-medium"
>
<Label htmlFor="includeOptions" className="text-left text-sm font-medium">
Include endpoint options
</Label>
<div className="flex h-[40px] w-full items-center space-x-3">
@ -359,10 +371,7 @@ export default function ExportModel({ open, onOpenChange }) {
</div>
</div>
<div className="grid w-full items-center gap-2">
<Label
htmlFor="exportBranches"
className="text-left text-sm font-medium"
>
<Label htmlFor="exportBranches" className="text-left text-sm font-medium">
Export all message branches
</Label>
<div className="flex h-[40px] w-full items-center space-x-3">
@ -383,10 +392,7 @@ export default function ExportModel({ open, onOpenChange }) {
</div>
{type === 'json' ? (
<div className="grid w-full items-center gap-2">
<Label
htmlFor="recursive"
className="text-left text-sm font-medium"
>
<Label htmlFor="recursive" className="text-left text-sm font-medium">
Recursive or sequential?
</Label>
<div className="flex h-[40px] w-full items-center space-x-3">

View file

@ -25,7 +25,7 @@ export default function ExportConversation() {
<>
<button
className={cn(
'flex py-3 px-3 items-center gap-3 transition-colors duration-200 text-white cursor-pointer text-sm hover:bg-gray-700 w-full',
'flex w-full cursor-pointer items-center gap-3 px-3 py-3 text-sm text-white transition-colors duration-200 hover:bg-gray-700',
exportable ? 'cursor-pointer text-white' : 'cursor-not-allowed text-gray-400'
)}
onClick={clickHandler}
@ -34,10 +34,7 @@ export default function ExportConversation() {
Export conversation
</button>
<ExportModel
open={open}
onOpenChange={setOpen}
/>
<ExportModel open={open} onOpenChange={setOpen} />
</>
);
}