diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..bffb357 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..73f5da6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,42 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local +.env + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + + +#firebase +.firebase + +serviceAccount.json \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..79e6165 --- /dev/null +++ b/README.md @@ -0,0 +1,79 @@ +
+ Your AI request has been + submitted +
++ Your AI model will begin training automatically once we have verified + your request. You can expect to hear back from us regarding the status + within the next 24 hours. +
+
+ Choose the gender you most biologically resemble this is
+
used for AI training purposes.
+
+ Man +
+ {hoveredClass === 1 || seletType === "Man" ? ( + + ) : null} ++ Woman +
+ {hoveredClass === 2 ? ( + + ) : null}{" "} ++ Why are there only two gender options? +
++ At Witit, we value diversity and inclusiveness and acknowledge that + gender is a personal and complex aspect of ones identity. If you + choose to participate in one of Witit’s offerings for using AI to + generate likeness, In order to accurately generate your likeness, we + ask for your biological gender or for the gender that best + represents you out of these options. However, we recognize that + gender can encompass a range of identities and expressions, and our + current technology is limited in its ability to capture these + nuances. +
++ We use the gender information you provide to help our AI understand + the basic physical characteristics of your appearance, but we + understand that it may not fully represent your gender identity. We + do not showcase your gender anywhere else so you will never be + misrepresented to the public. We are committed to working towards a + future where our technology can better reflect the diversity of + gender identities and expressions, and we appreciate your + understanding in the meantime. +
++ AI Yourself Will Cost you{" "} + {450 Credits.} +
+
+ We do this to protect you and keep Witit safe. You wouldn’t want
+ someone creating
+
unwanted photos of you on here would you?
+
+ Upload a photo of yourself holding up 3 fingers +
+ > + ), + }} + /> ++ Upload a photo of yourself holding up 3 fingers +
+ > + ), + }} + /> ++ I agree to be bound by Witit’s{" "} + { + setPolicy("TERMS_OF_SERVICE"); + }} + > + Terms of Service + + , + { + setPolicy("CONTENT_POLICY"); + }} + > + Content Policy + + , and + { + setPolicy("PRIVACY_POLICY"); + }} + > + Privacy Policy. + +
++ AI Yourself Will Cost you{" "} + 450 Credits. +
+{errorMessage}
++ Number of qualified photos :{" "} + + {photosLength <= 10 + ? "Low" + : photosLength <= 20 + ? "Medium" + : "Good"} + +
+ ++ By submitting more photos, you can improve the AI Yourself quality and + make it better. +
+Photos to use
++ For optimal results, please use photos similar in style to those + provided in the above section. +
+Photos to Avoid
++ For optimal results, please avoid using photos that are similar in + style to those provided in the above section. +
+Photos to Avoid
++ {CouldProduceMixedResults[2].name} +
++ Utilizing photos similar in style to those provided in the above + section may yield mixed results.photos similar in style to those + provided in the above section. +
++ {photo.name} +
+{ + e.stopPropagation(); + router.push( + redirectTouserProfile( + selectedPost.postedBy.userId, + user?.userId + ) + ); + }} + > + {selectedPost.postedBy.userName} +
+ {selectedPost.postedBy.userType === "VERIFIED" ? ( ++ {selectedPost.caption} +
+ ) : null} + {/*+ {selectedPost.caption} +
*/} +NSFW
++ Sensitive content, viewer discretion advised. +
++ {formatLargeNumber(selectedPost.counts.view)} Views +
+ {isLoading && creditDialogInfo?.postId === selectedPost.postId ? ( ++ {formatLargeNumber( + selectedPost.postId === recentInfo.postId + ? recentInfo.like.count + : selectedPost.counts.like + )} +
++ {formatLargeNumber(selectedPost.counts.comment)} +
++ {formatLargeNumber( + selectedPost.postId === recentInfo.postId + ? recentInfo.repost.count + : selectedPost.counts.repost + )} +
++ {formatLargeNumber(selectedPost.counts.recreation)} +
*/} +{initialTime}
++ {comment.comment.split(" ").map((word, index) => { + const match = word.match(/@(\S+)/); + + if ( + match && + comment.tag.find((text) => text.userName === match[1])?.userId + ) { + const username = match[1]; + return ( + { + comment?.tag?.map((tagInfo, index) => { + if (tagInfo.userName === username && tagInfo.userId) { + router.push( + redirectTouserProfile(tagInfo.userId, user?.userId) + ); + } + }); + }} + > + {word}{" "} + + ); + } else { + return {word} ; + } + })} + {/* {comment.comment.split(" ").map((word, index) => { + if (word.startsWith("@")) { + return ( + { + comment?.tag?.map((tagInfo, index) => { + if (tagInfo.userName === word.split("@")[1]) { + router.push( + redirectTouserProfile(tagInfo.userId, user?.userId) + ); + } + }); + }} + > + {word}{" "} + + ); + } else { + return {word} ; + } + })} */} +
+{comment?.commenter?.userName}
+ //+ // {getRecentTimeFromTimeStamp(comment?.createdAt)} + //
+ //+ // {comment.comment} + //
+ //
+ {friendInfo?.userName}
+ {friendInfo?.userType === UserType.VERIFIED ? (
+
+
{comment?.commenter?.userName}
++ {getRecentTimeFromTimeStamp(comment?.createdAt)} +
++ {comment.comment.split(" ").map((word, index) => { + const match = word.match(/@(\S+)/); + + if ( + match && + comment.tag.find((text) => text.userName === match[1])?.userId + ) { + const username = match[1]; + return ( + { + comment?.tag?.map((tagInfo, index) => { + if (tagInfo.userName === username && tagInfo.userId) { + router.push( + redirectTouserProfile(tagInfo.userId, user?.userId) + ); + } + }); + }} + > + {word}{" "} + + ); + } else { + return {word} ; + } + })} +
+{ + e.stopPropagation(); + router.push( + redirectTouserProfile( + selectedPost.postedBy.userId, + user?.userId + ) + ); + }} + > + {selectedPost.postedBy.userName} +
+ + {selectedPost.postedBy.userType === "VERIFIED" ? ( ++ {selectedPost.caption} +
+ ) : null} + ++ {currentslide} of {selectedPost.image.length} +
+ ) : null} ++ {formatLargeNumber(selectedPost.counts.view)} Views +
+ + {isLoading ? ( ++ {formatLargeNumber( + selectedPost.postId === recentInfo.postId + ? recentInfo.like.count + : selectedPost.counts.like + )} +
++ {formatLargeNumber(selectedPost.counts.comment)} +
++ {formatLargeNumber( + selectedPost.postId === recentInfo.postId + ? recentInfo.repost.count + : selectedPost.counts.repost + )} +
++ {formatLargeNumber(selectedPost.counts.recreation)} +
*/} +Comments
++ ({formatLargeNumber(selectedPost.counts.comment)}) +
+Total Credit Balance
+10
+Credit Amount
+6.50
+Gerdes
++ My favorite color is every color and none of the colors all at + once but also it not even a moment. Does that definitely make + sense? +
++ By submitting this request you agree to witit’s +
++ + Privacy Policy + {" "} + and + + Terms of Use + +
++ This determines how much Witit’s AI should stick too your prompt. + Too much or too little can create and undesirable effect. +
++ This will increase the number of iterations our AI will make when + producing your photos. This can change your cost per creation. +
++ Runs Another AI Model on top to create the face in the image. +
++ Run the AI creation process one more time but only on your face to + ensure high quality results. +
+ {creationSettings.preserveFaceDetails ? ( ++ too much or too little may cause undesirable effects +
++ This will increase the number of iterations our AI will make + when producing your photos. +
++ Run the AI creation process one more time but only on your hand to + ensure high quality results. +
+ {creationSettings.preserveHandDetails ? ( ++ too much or too little may cause undesirable effects{" "} +
++ This will increase the number of iterations our AI will make + when producing your photos. +
++ Toggle this checkbox to inpaint 'Only Masked' areas or leave + unchecked for 'Whole Picture' processing. +
++ This will increase the number of iterations our AI will make + when producing your photos. This can change your cost per + creation. +
++ This determines how much Witit’s AI should stick too your + prompt. Too much or too little can create and undesirable + effect. +
+Configure Advance Recreation Settings
++ Recreation type provides additional control over how you’d like + to recreate a photo. +
++ Recreation Strength is a value that determines how much Witit’s AI + will take the recreated photo into account. +
++ Recreation type provides additional control over how you’d like + to recreate a photo. +
++ Recreation Strength is a value that determines how much Witit’s + AI will take the recreated photo into account. +
+Filters
++ So that next time our AI wil automatically use this setting. +
+Reset to defaults
+Total Credit Balance
++ {tempCredit + transferableCredit + nonTransferableCredit} +
+Number of photos
+Super Shoot
++ 10x the number of images created +
++ 10% off with supershoot +
+Total Order Amount
++ {calculatedCharge} +
++ By submitting this request you agree to witit’s +
++ { + setPolicy("PRIVACY_POLICYS"); + }} + > + Privacy Policy + + and + { + setPolicy("TERMS_OF_SERVICES"); + }} + > + Terms of Use + +
+Failed To Generate
+{generation.message}
++ {generation.prompt} +
++ {dayjs(generation.createdAt).format("hh:mm A")} +
+{item.userName}
++ {item.models.length} {item.models.length > 1 ? "Models" : "Model"} +
+Friends Model
+{modelName}
+Select Model
+Your Model
+Jenny Wilson
+NSFW
++ Sensitive content, viewer discretion advised. +
+Prompts Used
+Model Name
+{promptDetails.modelName}
+Negative Prompts
++ {promptDetails.negativePrompt.map( + (prompt, index) => + prompt + + (index < promptDetails.negativePrompt.length - 1 + ? ", " + : "") + )} +
+Creation Settings
+Recreation Settings
+Power Upscale Settings
+{title}
+{value}
++ {errors.message?.message} +
++ We value all of our users, their thoughts, concerns, and support. + However we aren’t able to get back to everyone. We will do our best to + review your message as soon as we can. +
++ What is NSFW Content? +
++ Already have an account? + setActiveStep(-1)} + className="font-semibold ml-1 leading-6 text-primary-main hover:underline cursor-pointer" + > + Login + +
+Verification mail sent to
++ {firebaseUser?.email} +
+Send a new Link
+|
++ Use different mail +
+
+ {selectedUser.userName}
+ {selectedUser.userType === "VERIFIED" && (
+
+
+ {otherUserDetails.generationSettings.creditPerMessage} credit + / message +
+ )} +Total Credit Balance
++ {user?.credit && + user.credit.transferableCredit + + user.credit.nonTransferableCredit + + user.credit.tempCredit} +
+{val}
++ By submitting this request you agree to witit’s +
++ { + setPolicy("PRIVACY_POLICYS"); + }} + > + Privacy Policy + {" "} + and + { + setPolicy("TERMS_OF_SERVICES"); + }} + > + Terms of Use + +
++ {dayjs(msg?.createdAt).format("hh:mm A")} +
++ {msg.message} +
++ {dayjs(msg?.createdAt).format("hh:mm A")}{" "} +
+Hurray!! Credits Sent to You.
+ )} + {msg.receiverId !== user?.userId && ( + <> +Oops!! You send Credits.
++ To {selectedUser?.userName} +
+ > + )} +{msg.credit}
++ {dayjs(msg?.createdAt).format("hh:mm A")} +
+
+ {profileChat.receiver.id !== user?.userId
+ ? profileChat.receiver.userName
+ : profileChat.sender.userName}
+ {type === "VERIFIED" && (
+
+
+ {dayjs(profileChat?.createdAt).format("hh:mm A")} +
++ {profileChat.lastMessage} +
+ )} + {profileChat.receiver?.id === user?.userId && + profileChat.messageStatus === "SENT" && ( ++ {profileChat.lastMessage} +
+ )} + {profileChat.sender?.id === user?.userId && + profileChat.messageStatus === "SENT" && ( ++ Sent +
+ )} + {profileChat.sender?.id === user?.userId && + profileChat.messageStatus === "READ" && ( ++ Seen +
+ )} +
+ {profileChat.userName}
+ {profileChat.userType === "VERIFIED" && (
+
+
Messages
+Messages
+Create New Moment
+123
+123
+Gerdes
++ 1 min ago +
++ Currently out doing things and stuff. May want to do + more stuff, idk.{" "} +
+{member.userName}
+ {member.userType === UserType.VERIFIED ? ( +setMemberType(memberTab.type)} + > + {memberTab.name} +
+ ))} ++ {openOfferData?.name} +
+{openOfferData?.counts.like}
+{openOfferData?.completeOffers}
+Min. Credit:
++ {openOfferData?.creditRange.min} +
+Avg. Credit:
++ {openOfferData?.creditRange.avg} +
+Max. Credit:
++ {openOfferData?.creditRange.max} +
+Description:
+Set Your Offering Credit Range
++ Set Your Offering Credit Range With Minimum and Maximum + credit Values. so that candidate can offer in that valued + credit range. +
++ $ + {( + watch("creditRange.min") * amountPerCredit.withdraw + ).toFixed(2)} +
++ $ + {( + watch("creditRange.max") * amountPerCredit.withdraw + ).toFixed(2)} +
+Delete Offer
+ //+ // Sure You Want to Delete This Offer From Your Account? + //
+ //+ // You will not be able to recover them again. + //
+ //{offer.counts.like}
+{offer.completeOffers}
+{offer.name}
++ {offer.creditRange.avg} Credits +
++ Create Offering +
+
+ {currentUser?.userName}
+ {currentUser?.userType === UserType.VERIFIED ? (
+
+
+ {currentUser?.generalInfo.bio} +
+ {/* + View More + */} +{questionData.question}
++ Asked By{" "} + { + e.stopPropagation(); + router.push( + redirectTouserProfile( + questionData.questioner.id, + user?.userId + ) + ); + }} + > + {questionData.questioner.userName} + +
+ ++ {" "} + {Math.abs( + dayjs(questionData.createdAt).diff(dayjs(), "day") + ) === 0 + ? 1 + : Math.abs( + dayjs(questionData.createdAt).diff(dayjs(), "day") + )}{" "} + Days Ago +
++ {questionData.counts.like} +
+hello world
+ > + ) : null} +{questionData.question}
++ Asked By{" "} + { + e.stopPropagation(); + router.push( + redirectTouserProfile( + questionData.questioner.id, + user?.userId + ) + ); + }} + > + {questionData.questioner.userName} + +
+ ++ {" "} + {Math.abs( + dayjs(questionData.createdAt).diff(dayjs(), "day") + ) === 0 + ? 1 + : Math.abs( + dayjs(questionData.createdAt).diff(dayjs(), "day") + )}{" "} + Days Ago +
++ {questionData.counts.like} +
+{questionData.reply}
+{ + replyQuestion(questionData); + }} + > + Edit +
+{ + handleDeleteQuestion(questionData.questionId); + }} + > + Delete +
+{ + replyQuestion(questionData); + }} + > + Reply +
+{ + handleDeleteQuestion(questionData.questionId); + }} + > + Delete +
+Gerdes
++ My favorite color is every color and none of the colors all at once + but also it not even a moment. Does that definitely make sense? +
+Credit Settings
++ Earn with Witit +
++ With Witit, you can allow others to generate images and By doing + so you can charge credits per transaction and withdrawal those + credits into cash at the rate of $1 for every 150 credits +
++ Allow others to use your post on their AI +
++ Cost per derivative +
++ If someone uses your image when generating their image, + you will get this credit. +
++ { + errors.generationSettings?.creditPerDerivative + ?.message + } +
+Cost per Message
++ You will get this credit when unverified senders sends a + message to you. +
++ {errors.generationSettings?.creditPerMessage?.message} +
++ You can set the price for your AI models so when someone uses + your AI model to generate an image, you get credits. +
+ +{ + setCurrentTab("AI_MODELS"); + }} + > + SET PRICE FOR EACH MODEL +
++ Earn cash{" "} + from your AI, posts, prompts or through messaging +
+{application.modelName}
++ Created On {dayjs(application.createdAt).format("DD MMM, YYYY")} +
++ {application.message} +
++ Please note that the training image and model class cannot be + edited. If you wish to retrain the model, kindly delete this one and + train a new model. +
+Banned Words
++ Any words entered into this field will be prohibited to use, + preventing the generation of images containing those words. By not + including banned words, your verification badge will be red, + indicating that nothing is off limits. +
+Model Name
+Earn with Witit
++ With Witit, you can allow others to generate images and By doing + so you can charge credits per transaction and withdrawal those + credits into cash at the rate of $1 for every 150 credits +
+Allow others to generate on your AI
+Cost per derivative
++ If someone uses your image when generating their image, + you will get this credit. +
++ {errors.generationSettings?.creditPerPhoto.message} +
+ )} + > + )} +{model.modelName}
++ Created On {dayjs(model.createdAt).format("DD MMM, YYYY")} |{" "} + {model.counts.generatedImages} Photos Generated +
+AI Models
+Applications
++ {user.allowedModels - models.userModelList.length} Models + remaining Out Of {user.allowedModels} Free Models +
+ ) : null} +karlshakur
++ Blocked On {dayjs(blockedUser.createdAt).format("DD MMM, YYYY")} +
+Block Profiles
+Document Pending
++ To verify your account, we require additional information. Please + provide them to proceed with the verification process. +
++ Verification Pending +
++ Sorry, we were unable to verify your bank account. please Try Again. +
++ Bank account linked +
++ Your bank account has been linked successfully. You can withdraw your + credit from your linked bank account now. +
++ Bank account not linked +
++ Connect bank account to receive payments from witit. +
++ Verification Pending +
++ Your bank linking process has not yet been completed, please + complete it. +
+Bank Account
+Notification Settings
+Pause All Notifications
+{item.type}
++ {item.description} +
+NSFW
++ Allow others to watch NSFW Content In Your Account +
++ What is NSFW Content? +
++ NSFW is an abbreviation for the phrases such as: “Not Safe For + Wife”, “Not Suitable For Work”, but mostly used as “Not Safe For + Work” +
++ It is an internet slang that is often used to describe internet + posts and content that is mainly involves nudity, sexual + activity, heavy profanity and more... +
++ With Witit, we want to provide a safe place for people to freely + express art or interests that they couldn’t otherwise share on + other platforms. However doing so comes with some requirements, + such as needing to turn on the ability to see and post NSFW + content. +
++ NSFW is also not a free pass to post anything you want, we at + Witit just allow you fewer restricts than our social media + companions. We still do not tolerate obscene violence or illegal + activity of any sort. +
++ Accounts that post NSFW content have been marked with a red + verification badge. +
++ How can I view or post NSFW content? +
++ To turn on, off, or manage your NSFW preferences, you must do so + from the desktop version of Witit. This is part of the app + stores terms of service and not a creative decision. You also + must be 18 years of age or older. Please visit and login to your + Witit account at http://Witit.com to get started.{" "} +
+{ + setIsOpenDialogString("TERMS_OF_SERVICE"); + }} + > + Terms Of Services +
+|
+{ + setIsOpenDialogString("PRIVACY_POLICY"); + }} + > + Privacy Policy +
+|
{" "} +{ + setIsOpenDialogString("CONTENT_POLICY"); + }} + > + Content Policy +
+|
{" "} +{ + setIsOpenDialogString("CONTACT_US"); + }} + > + Contact Us +
++ {tab.name} +
++ {title && title.titleMain} +
++ {title.title1} +
+ )} + {title && ( ++ {title.title2} +
+ )} +Select Ratio
++ All images keep the same ratio. +
++ {category.startIcon} +
++ {category.name} +
+{errorMessage}
+{category.startIcon}
++ {category.name} +
+{errorMessage}
+