Either/Or Management

Welcome to Fans United Either/Or Management Widget. The widget allows staff members with sufficient permissions to create, update and delete Either/Or mini-games. You can use this widget as it is and embed it in your platform, or you can use the Management Panel. Either/Or is a mini-game where users receives two options and he needs to answer which is one more or less for a specified time. With successful installation, you can create, edit and delete a Either/Or mini-game.

Installation and usage

The easiest way to use fansunited-widget-either-or-management is to install it from npm as follows:

npm  install  fansunited-widget-either-or

or:

yarn  add  fansunited-widget-either-or

Here is an example how you can integrate Fans United Either/Or Management Widget:

import  'fansunited-widget-either-or/style.css';
import { EitherOrManager } from  'fansunited-widget-either-or';

const  App = () => {
return (
<EitherOrManager
	fansUnitedApiKey={'your-api-key'}
	fansUnitedClientId={'your-client-id'} />
);
}

Notes

  • The widget is bundled as a React component and its usage is as simple as the above example

  • Don't worry about your project's CSS. The widget's styling is done with Tailwind CSS and all classes are prefixed to avoid collisions with your existing CSS. This means that the widget's CSS will NOT affect yours. One important thing is that you need to import style.css file from package folder:

import 'fansunited-widget-either-or/style.css';

N.B: If you are using an entry point for importing all your stylings, you need to import fansunited-widget-either-or/style.css there as well

Props

type  EitherOrManagerProps = {
	fansUnitedApiKey: string;
	fansUnitedClientId: string;
	fansUnitedLanguage?: string;
	fansUnitedEnvironment?: string;
	sportal365Project?: string;
	sportal365Infrastructure?: 'shared' | 'betway';
	labels?: LabelsModel;
	hideSignOutButton?: boolean;
};

Fans United Either/Or Management Widget depends on Fans United JS SDK and Fans United Client API. Thats why fansUnitedApiKey and fansUnitedClientId are required. They will be provided to you from Fans United team. For other optional props here is some information:

  • fansUnitedLanguage - for our sports APIs FansUnited platform supports different languages. For now they are Bulgarian (bg), English (en), Romanian (ro), Greek (el), Slovak (sk), Serbian (sr) and Hungarian (hu). If no value given it will be set to English (en).

  • fansUnitedEnvironment - You can run the widget in the following environments: staging, production, watg and yolo. If no value given it will be set to production (prod).

  • labels - you can easily translate all labels, UI messages, descriptions, placeholders and etc. with this prop. By default, Fans United Match Either/Or Management Widget is available in English so if no value is given, the widget will be translated in English.

  • sportal365Project - The Sportal365 project. Used as a request header when communicating with Sportal365 APIs.

  • sportal365Infrastructure - The Sportal365 infrastructure. Used to determine what authorization should be used when communicating with Sportal365 APIs. If no value given (when sportal365Project props is provided) it will be set to shared .

  • hideSignOutButton - By default on the top left corner of the widget will be displayed a sign out button. To hide that button set this prop to true.

Translation

You can easily translate Fans United Either/Or Management Widget in your language! You just need to pass an object to labels prop with concrete keys and values and that's it! Here's an example how you can do it:

import  'fansunited-widget-either-or/style.css';
import { EitherOrManager } from  'fansunited-widget-either-or';

const  labels = {
	userNotFound:  'User not found. Please try again',
	clientFeaturesNotFoundMessage: "There was a problem fetching client's configuration. Please check again your API key and client ID. For more information contact Fans United staff.",
	noGamesFound: "No Either/Or games were found. You can create one by clicking the button 'Create'",
	featureDisabled: 'Feature disabled!',
	noPermissionMessage: 'You have no permission for this feature!',
	tryAgainButton: 'Try again',
	additionalInformation: 'Additional information',
	signOut:  'Sign out',
	timeFormat:  'DD.MM.YYYY, HH:mm',
	getEitherOrsErrorMessage: 'There was a problem with fetching list of Either/Or games',
	title:  'Title',
	alternativeTitle: 'Alternative title',
	status:  'Status',
	creationDate:  'Created at',
	actions:  'Actions',
	create: 'Create',
	edit: 'Edit',
	save: 'Save',
	preview: 'Preview',
	previewGame: 'Preview Either/Or',
	close: 'Close',
	filterBy: 'Filter by:',
	sortBy: 'Sort by:',
	clearStatus: 'Clear status',
	contextEntityTag: 'Context entity tag',
	typeContextTagNamePlaceholder: 'Type context tag name...',
	itemsPerPage:  'Items per page',
	pageNo: 'Page No',
	deleteEitherOrTitle: 'Delete Either/Or',
	deleteEitherOrDescription: 'Are you sure you want to delete',
	showMoreImages: 'Show more images',
	hideMoreImages: 'Hide more images',
	uploadImage: 'Upload image',
	groupByStatus: 'Group by status',
	copyUrl: 'Copy URL',
	copied: 'Copied',
	add: 'Add',
	configuration: 'Configuration',
	description: 'Description',
	descriptionPlaceholder: 'Describe your Either/Or',
	images: 'Images',
	rules: 'Rules',
	rulesPlaceholder: 'Describe your rules for participating in Either/Or',
	adContent: 'Ad content',
	adContentPlaceholder: 'Place your ad content in Either/Or',
	optionImages: 'Option images',
	main: 'Main',
	cover: 'Cover',
	mobile: 'Mobile',
	imagePlaceholder: 'Paste your image as valid URL or as relative path',
	active: 'Active',
	inactive: 'Inactive',
	expired: 'Expired',
	statusDescription: "When Either/Or is Inactive, then users are not allowed to participate",
	winningCondition: 'Winning condition',
	winningConditionDescription: "Winning condition determines the correct choice out of a pair of options presented to the user. When is set to 'More,' the user must select the option that has a greater value to win. Conversely, if is set to 'Less,' the winning choice is the one with the lesser value",
	more: 'More',
	less: 'Less',
	time: 'Time',
	timeDescription: 'Enter the time limit for answering questions by users. Time is in seconds',
	lives: 'Lives',
	livesDescription: 'Enter how many lives the user will have during a game',
	points: 'Points',
	pointsDescription: 'Set the threshold of consecutive correct answers after which points are awarded and define the amount of points received from this step onwards.Valid value for correct steps is between 0-50 and for score 1-100',
	pointNumber: 'Point number',
	pointsCorrectSteps: 'Correct steps',
	pointsCorrectStepsPlaceholder: 'Set the number of correct steps needed in a row to earn points',
	pointsScore: 'Score',
	pointsScorePlaceholder: 'Set the points awarded per correct answer within the streak',
	optionsDescription: 'Describe the options that users will select from during the game. Ensure to provide a minimum of 5 and a maximum of 100 options',
	optionsValue: 'Value',
	optionsValuePlaceholder: 'Type the value of the option',
	repeatedValueMessage: 'You have entered a repeated value. Please enter a different one',
	flags: 'Flags',
	flagsPlaceholder: 'Type your flag and hit enter',
	labels: 'Labels',
	customFields: 'Custom fields',
	dynamicFieldsDescription: 'You can create your custom attributes for easier way to connect or describe your Either/Or',
	keyDynamicFields: 'Key',
	valueDynamicFields: 'Value',
	options: 'Options',
	optionNumber: 'Option number',
	context: 'Context',
	content: 'Content',
	tags: 'Tags',
	entity: 'Entity',
	campaign: 'Campaign',
	id: 'ID',
	label: 'Label',
	type: 'Type',
	typeDescription: 'Select the Either/Or type. You can set the types in our Management Portal by going to Features, then clicking on the Either/Or page',
	deleteLabel: 'Delete',
	getFootballEntitiesErrorMessage: "There was a problem with fetching football's data",
	createEitherOrMessage: 'You have successfully created Either/Or',
	createEitherOrErrorMessage: 'There was a problem creating Either/Or. Please try again',
	titleRequiredFieldValidationMessage: 'Title field is required!',
	livesFieldValidationMessage: "The value for 'lives' field is invalid. The valid one is withing the range of 1-20",
	timeFieldValidationMessage: "The value for 'time' field is invalid. The valid one is withing the range of 1-20",
	pointsFieldValidationMessage: "Points contain value where score or correct steps is an invalid one",
	optionsFieldValidationMessage: "Options must not contain any repeated IDs",
	tagsInvalidFieldValidationMessage: 'Tag entity is required!',
	getEitherOrErrorMessage: 'There was a problem with fetching Either/Or data. Please try again',
	deleteEitherOrMessage: 'You have successfully deleted Either/Or',
	deleteEitherOrErrorMessage: 'There was a problem with deleting Either/Or. Please try again',
	updateEitherOrMessage: 'You have successfully updated Either/Or',
	updateEitherOrErrorMessage: 'There was a problem updating Either/Or. Please try again',
	updateEitherOrTranslationErrorMessage: 'There was a problem translating Either/Or game. Please try again',
	uploadingImageMessage: 'You have successfully uploaded image',
	generateSignedInUrlErrorMessage: 'There was a problem generating signed in URL to store the image in bucket. Please try again',
	uploadingImageErrorMessage: 'There was a problem with uploading image to bucket. Please try again',
	encryptingImageErrorMessage: 'There was a problem with encrypting image before uploading it to bucket. Please try again',
	searchSportal365ImagesErrorMessage: 'There was a problem with searching images from Sportal 365 API. Please try again',
	hideFilters: 'Hide filters',
	showFilters: 'Show filters',
	branding: 'Branding',
	urls: 'URLs',
	primaryUrl: 'Primary URL',
	secondaryUrl: 'Secondary URL',
	privacyPolicyUrl: 'Privacy Policy URL',
	termsAndConditionsUrl: 'Terms and Conditions URL',
	additionalUrl: 'Additional URL',
	colors: 'Colors',
	primaryColor: 'Primary Color',
	secondaryColor: 'Secondary Color',
	contentColor: 'Content Color',
	backgroundColor: 'Background Color',
	borderColor: 'Border Color',
	additionalColor: 'Additional Color',
	mainLogo: 'Main Logo',
	mobileLogo: 'Mobile Logo',
	backgroundImage: 'Background Image',
	mobileBackgroundImage: 'Mobile Background Image',
	additionalImage: 'Additional Image',
	exportAllUsers: "Export all users",
	usersExportMessage: "All users have been exported successfully",
	usersExportErrorMessage: "There was a problem with exporting users. Please try again",
	createFromTemplate: 'Create from template',
	browseEitherOrGames: 'Browse Either/Or Games',
	noTemplateGamesFound: 'No Either/Or games were found.',
	expand: 'Expand',
	import: 'Import',
	translateAndImport: 'Translate to _language_ and Import',
	sortByCreatedAtAsc: 'Sort by created at field in ascending order',
	sortByCreatedAtDesc: 'Sort by created at field in descending order',
	sortByUpdatedAtAsc: 'Sort by updated at field in ascending order',
	sortByUpdatedAtDesc: 'Sort by updated at field in descending order',
	mainImage: 'Main',
	coverImage: 'Cover',
	mobileImage: 'Mobile',
	clearImage: 'Clear image',
	viewImage: 'View image',
	cropImage: 'Crop image',
	aspectRatio: 'Aspect ratio',
	crop: 'Crop',
	reset: 'Reset',
	sportal365Images: 'Sportal365 Images',
	search: 'Search',
	delete: 'Delete',
	schedule: 'Schedule',
	scheduledTaskNotAvailable: 'To configure scheduled tasks you need to first create your game',
	createScheduledTaskMessage: 'You have successfully created scheduled task',
	createScheduledTaskErrorMessage: 'An error occurred while creating scheduled task. Please try again later',
	updateScheduledTaskMessage: 'You have successfully updated scheduled task',
	updateScheduledTaskErrorMessage: 'An error occurred while updating scheduled task. Please try again later',
	deleteScheduledTaskMessage: 'You have successfully deleted scheduled task',
	deleteScheduledTaskErrorMessage: 'An error occurred while deleting scheduled task. Please try again later',
	deleteScheduledTaskModalTitle: 'Delete scheduled task',
	deleteScheduledTaskModalParagraph: 'Are you sure you want to delete the following scheduled task: ',
	changeStatusTo: 'Change status to:',
	at: 'At:',
	authRequirement: 'Auth Requirement',
	authRequirementDescription: 'Choose the type of authentication to be used.',
	free: 'Free',
	lead: 'Lead',
	registered: 'Registered',
	paid: 'Paid',
	language: 'Language',
	languageDescription: 'Select the language for your game. You can manage language selection by configuring available languages in language configuration. It cannot be changed if multilingual feature is in use.',
	urlCopiedToClipboardMessage: 'URL copied to clipboard',
	imageDeletedMessage: 'Image deleted',
	imageResetMessage: 'The initial size of the image has been restored',
	exports: 'Exports',
	exportUsersData: 'Export users data',
	category: 'Category',
	action: 'Action',
	exportAllUsersDescription: 'Export all users who participated in the game.',
	fromDate: 'From Date',
	toDate: 'To Date',
	addOption: 'Add option',
	removeOption: 'Remove option',
	addImages: 'Add images',
	additionalFields: 'Additional fields',
	addPoint: 'Add point',
	removePoint: 'Remove point',
	reports: 'Reports',
	standings: 'Standings',
	participations: 'Participations',
	participationOverview: 'Participation Overview',
	exportUsersWithMinPoints: 'Export all users with at least _minPoints_ points',
	exportUsersWithMinPointsDescription: 'Exports the users who got at least _minPoints_ points in the game.',
	chartErrorMessage: 'There was a problem with fetching information about either/or game participation. Please try again',
	performanceByDay: 'Performance by day',
	noStandingsAvailable: 'No standings available.',
	standingsErrorMessage: 'There was a problem with fetching information about either/or game standings. Please try again',
	name: 'Name',
	languagesModalTitle: 'Select Languages',
	languagesModalDescription: 'Select the languages this game is going to be translated in.',
	languagesModalSave: 'Save language preference',
	languageParentText: 'This game is a translated version of',
	gameTranslationErrorMessage: 'An error occurred while translating the game.',
	translateTo: 'Translate to ',
	exportUsersLeads: 'Export users leads',
	exportAllUsersLeads: 'Export all users leads',
	exportAllUsersLeadsDescription: 'Export all users collected leads in the game.',
	usersLeadsExportMessage: 'All users leads have been exported successfully',
	usersLeadsExportErrorMessage: 'There was a problem with exporting all users leads. Please try again',
	related: 'Related',
	relationship: 'Relationship',
	relatedEntitiesErrorMessage: 'There was a problem with fetching entities for related. Please try again',
	widgetEmbedCodeTitle: 'Widget embed code',
	configureLeads: 'Configure leads',
	configureLeadsDisabledMessage: 'Configure leads is enabled only when the authentication requirement is set to “Lead”.',
	leadPosition: 'Lead position',
	addCampaignInfo: 'Add campaign info',
	campaignIdInfoMessage: 'Group multiple content items by a campaign ID. This field will be used for filtering later on, so make sure you have excatly the same ID across your multiple quizzes, polls and other games in general. We recommend using lowercase and -. Example: "adidas-december-2025"',
	campaignNameInfoMessage: 'A label for your campaign that will appear in the reports. You can use anything here. Example: "Adidas (December 2025)"',
	copyToClipboard: 'Copy to clipboard',
	divElementTextInfo: "The generated embed code can be copied directly into your website's HTML. For comprehensive implementation details, visit our documentation: ",
	widgetEmbedCodeNotAvailable: 'To configure embed code you need to first create your Either/Or game.',
	signInLabel: 'Label',
	signInLabelInfoMessage: `Custom text displayed on the sign-in button. If empty, defaults to "Sign in to vote".`,
	authenticationHandler: 'Authentication handler',
	authenticationHandlerInfoMessage: 'JavaScript function code that executes when users click the sign-in button. To evaluate the function, provide only the function name. Example: showLoginModal() or window.openAuth(). The function is required otherwise the sign-in button will just log dummy message in the console.',
	configureSignIn: 'Configure sign-in options',
	configureSignInDisabledMessage: `Configure sign-in options is enabled only when the authentication requirement is set to “Registered”.`,
	translationOptions: 'Translate to:',
	cloneMiniGameTitle: 'Clone Either/Or',
	clone: 'Clone',
	cloneEitherOrMessage: 'You have successfully cloned Either/Or',
	cloneEitherOrErrorMessage: 'There was a problem cloning Either/Or. Please try again',
	translationErrorMessage: 'An error occurred while translating.'
};

const  App = () => {
return (
<EitherOrManager
	fansUnitedApiKey={'your-api-key'}
	fansUnitedClientId={'your-client-id'}
	labels={labels}/>
);
}

Here is all information about LabelsModel:

KeyDescriptionDefault Value
userNotFoundOn login screen when client gives invalid information about email or password.User not found. Please try again
clientFeaturesNotFoundMessageToast error message when client is providing invalid value to fansUnitedApiKey or fansUnitedClientId prop.There was a problem fetching client's configuration. Please check again your API key and client ID. For more information contact Fans United staff.
featureDisabledLabel for no permission card titleFeature disabled!
noPermissionMessageLabel for no permission card paragraphYou have no permission for this feature!
tryAgainButtonLabel for no permission card buttonTry again
additionalInformationLabel for tooltip buttonAdditional information
noGamesFoundWhen there are no created games for specific client, this message will appear on screen.No Either/Or games were found. You can create one by clicking the button 'Create'
signOutUsed as label on sign out button.Sign out
getEitherOrsErrorMessagereact-toastify error message when request fails for fetching list of Either/Or.There was a problem with fetching list of Either/Or games
titleLabel for titleTitle
alternativeTitleLabel for alternative titleAlternative title
statusStatus of a Either/OrStatus
creationDateDate of created Either/Or in same format as given for timeFormat propCreated at
actionsTwo icon buttons with different actionsActions
createLabel for management headerCreate
editLabel for management headerEdit
saveLabel for save buttonSave
previewLabel for preview buttonPreview
previewGameTitle for preview game modalPreview Either/Or
closeLabel for close buttonClose
filterByLabel for filters container on main screenFilter by:
sortByLabel for sort container on main screenSort by:
clearStatusLabel for clear status hyperlink for status filterClear status
contextEntityTagLabel for input search for context entity tag in filters containerContext entity tag
typeContextTagNamePlaceholderPlaceholder for input search for context entity tag in filters container and in context side barType context tag name...
showMoreImagesLabel for hyperlink in images containerShow more images
hideMoreImagesLabel for hyperlink in images containerHide more images
uploadImageLabel next to upload buttonUpload image
groupByStatusLabel for checkbox in sort containerGroup by status
copyUrlLabel for copy url buttonCopy URL
copiedLabel for copy url buttonCopied
addLabel for add buttonAdd
configurationLabel for configuration accordionConfiguration
timeFormatTimeformat for displaying dates. Widgets uses dayjs as a date dependency.DD.MM.YYYY, HH:mm
previousLabel for pagination button.Previous
nextLabel for pagination button.Next
idLabel for ID read only input field.ID
descriptionLabel for desciption input field on management screen.Description
descriptionPlaceholderPlaceholder/desciption about input field for game description when creating/editing a game.Describe your Either/Or
imagesLabel for images container.Images
rulesLabel for rules rich text.Rules
rulesPlaceholderPlaceholder for rules rich text.Describe your rules for participating in Either/Or
adContentLabel for AD content rich text.Ad content
adContentPlaceholderPlaceholder for AD content rich text.Place your ad content in Either/Or
optionImagesLabel for option images container.Option images
mainLabel for main image.Main
coverLabel for cover image.Cover
mobileLabel for mobile image.Mobile
imagePlaceholderPlaceholder for image inputs.Paste your image as valid URL or as relative path
activeLabel for status.Active
inactiveLabel for status.Inactive
expiredLabel for status.Expired
statusDescriptionDescription for status select.When Either/Or is Inactive, then users are not allowed to participate
winningConditionLabel for winning condition select.Winning condition
winningConditionDescriptionDescription for winning condition select.Winning condition determines the correct choice out of a pair of options presented to the user. When is set to 'More,' the user must select the option that has a greater value to win. Conversely, if is set to 'Less,' the winning choice is the one with the lesser value
moreLabel for more option.More
lessLabel for less option.Less
timeLabel for time input.Time
timeDescriptionPlaceholder for time input.Enter the time limit for answering questions by users. Time is in seconds
livesLabel for lives input.Lives
livesDescriptionPlaceholder for lives input.Enter how many lives the user will have during a game
pointsLabel for points.Points
pointsDescriptionDescription for points.Set the threshold of consecutive correct answers after which points are awarded and define the amount of points received from this step onwards.Valid value for correct steps is between 0-50 and for score 1-100
pointNumberLabel for point container.Point number
pointsCorrectStepsLabel for points correct steps input.Correct steps
pointsCorrectStepsPlaceholderPlaceholder for point correct steps input.Set the number of correct steps needed in a row to earn points
pointsScoreLabel for points score input.Score
pointsScorePlaceholderPlaceholder for points score input.Set the points awarded per correct answer within the streak
optionsDescriptionDescription for options.Describe the options that users will select from during the game. Ensure to provide a minimum of 5 and a maximum of 100 options
optionsValueLabel for options value.Value
optionsValuePlaceholderPlaceholder for options value.Type the value of the option
flagsLabel for choosing flags.Flags
flagsPlaceholderPlaceholder on input field for flagsType your flag and hit enter
labelsLabel for labels containerLabels
customFieldsLabel for custom fields containerCustom fields
dynamicFieldsDescriptionDescription paragraph for labels and custom fields containersYou can create your custom attributes for easier way to connect or describe your Either/Or
keyDynamicFieldsLabel for key inputKey
valueDynamicFieldsLabel for value inputValue
repeatedValueMessagereact-toastify warning message when client submits same flag.You have entered a repeated value. Please enter a different one
optionsLabel for options.Options
optionNumberLabel for option container's header.Option number
correctLabel for correct radio button.Correct
contextLabel for context container.Context
contentLabel for context content container.Content
tagsLabel for context tags container.Tags
entityLabel for entity search in tag.Entity
campaignLabel for context campaign container.Campaign
idLabel for ID.ID
labelLabel for context content/campaign label input.Label
typeLabel for context content type input.Type
typeDescriptionDescription paragraph for type select.Select the Either/Or type. You can set the types in our Management Portal by going to Features, then clicking on the Either/Or page
deleteLabelLabel for delete button in confirmation modal.Delete
hideFiltersLabel for hyperlink to hide filters for image searchHide filters
showFiltersLabel for hyperlink to show filters for image searchShow filters
brandingLabel for branding containerBranding
urlsLabel for branding urls containerURLs
primaryUrlLabel for branding primary url inputPrimary URL
secondaryUrlLabel for branding secondary url inputSecondary URL
privacyPolicyUrlLabel for branding privacy policy url inputPrivacy Policy URL
termsAndConditionsUrlLabel for branding terms and conditions url inputTerms and Conditions URL
additionalUrlLabel for branding additional url inputAdditional URL
colorsLabel for branding colors containerColors
primaryColorLabel for branding primary color inputPrimary Color
secondaryColorLabel for branding secondary color inputSecondary Color
contentColorLabel for branding content color inputContent Color
backgroundColorLabel for branding background color inputBackground Color
borderColorLabel for branding border color inputBorder Color
additionalColorLabel for branding additional color inputAdditional Color
mainLogoLabel for branding main logoMain Logo
mobileLogoLabel for branding mobile logoMobile Logo
backgroundImageLabel for branding background imageBackground Image
mobileBackgroundImageLabel for branding mobile background imageMobile Background Image
additionalImageLabel for branding additional imageAdditional Image
exportAllUsersTooltip for exported users buttonExport all users
usersExportMessagereact-toastify successful message when exporting all usersAll users have been exported successfully
usersExportErrorMessagereact-toastify error message when exporting all users failsThere was a problem with exporting users. Please try again
createFromTemplateCreate from game template button titleCreate from template
browseEitherOrGamesImport game from template modal headerBrowse Either/Or Games
noTemplateGamesFoundScreen message when there are no template games foundNo Either/Or games were found.
expandExpand row button tooltipExpand
importImport game modal action button titleImport
translateAndImportImport game modal translate action button titleTranslate to language and Import
getFootballEntitiesErrorMessagereact-toastify error message when typing the name of the entity in tags and request fails.There was a problem with fetching football's data
createEitherOrMessagereact-toastify successful message when creating Either/OrYou have successfully created Either/Or
createEitherOrErrorMessagereact-toastify error message when creating Either/OrThere was a problem creating Either/Or. Please try again
titleRequiredFieldValidationMessagereact-toastify error message when validating title for Either/OrTitle field is required!
livesFieldValidationMessagereact-toastify error message when validating lives for Either/OrThe value for 'lives' field is invalid. The valid one is withing the range of 1-20
timeFieldValidationMessagereact-toastify error message when validating time for Either/OrThe value for 'time' field is invalid. The valid one is withing the range of 1-20
pointsFieldValidationMessagereact-toastify error message when validating points for Either/OrPoints contain value where score or correct steps is an invalid one
optionsFieldValidationMessagereact-toastify error message when validating options for Either/OrOptions must not contain any repeated IDs
tagsInvalidFieldValidationMessagereact-toastify error message when validating tags for Either/OrTag entity is required!
updateEitherOrMessagereact-toastify successful message when updating Either/OrYou have successfully updated Either/Or
updateEitherOrErrorMessagereact-toastify error message when updating Either/OrThere was a problem updating Either/Or. Please try again
updateEitherOrTranslationErrorMessagereact-toastify error message when updating and making translations for Either/Or gameThere was a problem translating Either/Or game. Please try again
deleteEitherOrMessagereact-toastify successful message when deleting Either/OrYou have successfully deleted Either/Or
deleteEitherOrErrorMessagereact-toastify error message when deleting Either/OrThere was a problem with deleting Either/Or. Please try again
uploadingImageMessagereact-toastify success message when uploading image to bucketYou have successfully uploaded image
generateSignedInUrlErrorMessagereact-toastify error message when trying to receive a signed in URL.There was a problem generating signed in URL to store the image in bucket. Please try again
uploadingImageErrorMessagereact-toastify error message when uploading image to bucketThere was a problem with uploading image to bucket. Please try again
encryptingImageErrorMessagereact-toastify error message when encrypting image before uploading it to bucketThere was a problem with encrypting image before uploading it to bucket. Please try again
searchSportal365ImagesErrorMessagereact-toastify error message when searching images from Sportal 365 APIThere was a problem with searching images from Sportal 365 API. Please try again
sortByCreatedAtAscLabel for sort optionSort by created at field in ascending order
sortByCreatedAtDescLabel for sort optionSort by created at field in descending order
sortByUpdatedAtAscLabel for sort optionSort by updated at field in ascending order
sortByUpdatedAtDescLabel for sort optionSort by updated at field in descending order
itemsPerPageLabel for items per page filter selectItems per page
pageNoLabel before pagination buttonsPage No
deleteEitherOrTitleTitle for delete either/or modalDelete Either/Or
deleteEitherOrDescriptionDescription for delete either/or modalAre you sure you want to delete
backLabel next to back buttonBack
manageEitherOrTitleTitle on management screenManage Either/Or
manageEitherOrDescriptionDescription on management screenManage your Either/Or game here
mainImageLabel for main image.Main
coverImageLabel for cover image.Cover
mobileImageLabel for mobile image.Mobile
clearImageTooltip for clear image buttonClear image
viewImageTooltip for view image buttonView image
cropImageTooltip for crop image buttonCrop image
aspectRatioLabel for aspect ratio selectAspect ratio
cropLabel for crop buttonCrop
restLabel for reset buttonReset
sportal365ImagesLabel for sportal365 images buttonSportal365 Images
searchLabel for searchSearch
deleteLabel for deleteDelete
scheduleLabel for schedule accordionSchedule
scheduledTaskNotAvailableParagraph when trying to configure scheduled task for not created gameTo configure scheduled tasks you need to first create your game
deleteScheduledTaskModalTitleTitle for delete scheduled task modalDelete scheduled task
deleteScheduledTaskModalParagraphParagraph for delete scheduled task modalAre you sure you want to delete the following scheduled task:
createScheduledTaskMessageToast successful message when a new scheduled task is createdYou have successfully created scheduled task
createScheduledTaskErrorMessageToast error message when a new scheduled task is createdAn error occurred while creating scheduled task. Please try again later
updateScheduledTaskMessageToast successful message when a scheduled task is updatedYou have successfully updated scheduled task
updateScheduledTaskErrorMessageToast error message when a scheduled task is updatedAn error occurred while updating scheduled task. Please try again later
deleteScheduledTaskMessageToast successful message when a scheduled task is deletedYou have successfully deleted scheduled task
deleteScheduledTaskErrorMessageToast error message when a scheduled task is deletedAn error occurred while deleting scheduled task. Please try again later
changeStatusToLabel for select input in schedule accordionChange status to:
atLabel for calendar input in schedule accordionAt:
authRequirementLabel for auth requirement select in configuration panel.Auth Requirement
authRequirementDescriptionDescription for auth requirement select in configuration panel.Choose the type of authentication to be used.
freeLabel for auth requirement option.Free
leadLabel for auth requirement option.Lead
registeredLabel for auth requirement option.Registered
paidLabel for auth requirement option.Paid
languageLabel for language selection in configuration panel.Language
languageDescriptionDescription paragraph for language select.Select the language for your game. You can manage language selection by configuring available languages in language configuration. It cannot be changed if multilingual feature is in use.
urlCopiedToClipboardMessageToast info message when image URL is copiedURL copied to clipboard
imageDeletedMessageToast info message when image is deletedImage deleted
imageResetMessageToast info message when image size is restoredThe initial size of the image has been restored
exportsLabel for exports tabExports
exportUsersDataTitle in exports users dataExport users data
categoryName of columnCategory
actionName of columnAction
exportAllUsersDescriptionDescription for export all users category recordExport all users who participated in the game.
fromDateLabel for from date inputFrom Date
toDateLabel for to date inputTo Date
addOptionLabel for add option buttonAdd option
removeOptionLabel for remove option buttonRemove option
additionalFieldsLabel for additional fieldsAdditional fields
addImagesLabel for add images checkboxAdd images
addPointLabel for add point buttonAdd point
removePointLabel for remove point buttonRemove point
reportsLabel for tabReports
standingsLabel for tabStandings
participationsLabel for participations chart legendParticipations
participationOverviewLabel for statistics table headerParticipation Overview
exportUsersWithMinPointsLabel for for export users by minimum points criteria category record. The placeholder 'minPoints' is required and will be replaced with the points that is provided by the user.Export all users with at least minPoints points
exportUsersWithMinPointsDescriptionDescription for export users by minimum points criteria category record. The placeholder 'minPoints' is required and will be replaced with the points that is provided by the user.Exports the users who got at least minPoints points in the game.
performanceByDayLabel for participations chart legendPerformance by day
chartErrorMessageToast error message when fetching the game participation failsThere was a problem with fetching information about game participation. Please try again
noStandingsAvailableParagraph when no standings is still availableNo standings available.
standingsErrorMessageToast error message when fetching the game staindings failsThere was a problem with fetching information about either/or game standings. Please try again
nameLabel for nameName
languagesModalTitleTitle for translate languages modalSelect Languages
languagesModalDescriptionDescription for translate languages modalSelect the languages this game is going to be translated in.
languagesModalSaveLanguages modal save button titleSave language preference
languageParentTextAlert text for translated gameThis game is a translated version of
gameTranslationErrorMessageToast error message when translating a gameAn error occurred while translating the game.
translateToTranslation game content button titleTranslate to
exportUsersLeadsTitle in export users leads tableExport users leads
exportAllUsersLeadsCategory label in export users leads tableExport all users leads
exportAllUsersLeadsDescriptionCategory description label in export users leads tableExport all users collected leads in the game.
exportAllUsersLeadsDescriptionSuccess toast message when exporting users leadsAll users leads have been exported successfully
exportAllUsersLeadsDescriptionToast error message when exporting users leads operation failsThere was a problem with exporting all users leads. Please try again
relatedLabel for related accordion in side bar.Related
relationshipLabel for relationship select input.Relationship
relatedEntitiesErrorMessageToast error message when fetching related entities data fails.There was a problem with fetching entities for related. Please try again
widgetEmbedCodeTitleLabel for widget embed code acordion in side barWidget embed code
configureLeadsConfigure lead switch button labelConfigure leads
configureLeadsDisabledMessageMessage shown when configure leads switch button is disabledConfigure leads is enabled only when the authentication requirement is set to “Lead”.
leadPositionLead position selector title in embed code acordionLead position
addCampaignInfoCampaign info switch label in embed code acordionAdd campaign info
campaignIdInfoMessageTooltip info text for campaign id input fieldGroup multiple content items by a campaign ID. This field will be used for filtering later on, so make sure you have excatly the same ID across your multiple quizzes, polls and other games in general. We recommend using lowercase and -. Example: "adidas-december-2025"
campaignNameInfoMessageTooltip info text for campaign name input fieldA label for your campaign that will appear in the reports. You can use anything here. Example: "Adidas (December 2025)"
copyToClipboardDiv text button tooltip text in embed code acordionCopy to clipboard
divElementTextInfoHelper text for div content in embed code acordionThe generated embed code can be copied directly into your website's HTML. For comprehensive implementation details, visit our documentation:
widgetEmbedCodeNotAvailableParagraph when trying to configure widget embed code for not created Either/OrTo configure embed code you need to first create your Either/Or game.
signInLabelLabel for sign in label inputLabel
signInLabelInfoMessageInfo tooltip message for sign in label inputCustom text displayed on the sign-in button. If empty, defaults to "Sign in to vote".
authenticationHandlerLabel for authentication handlerAuthentication handler
authenticationHandlerInfoMessageInfo tooltip message for authentication handlerJavaScript function code that executes when users click the sign-in button. To evaluate the function, provide only the function name. Example: showLoginModal() or window.openAuth(). The function is required otherwise the sign-in button will just log dummy message in the console.
configureSignInLabel for configure sign in switchConfigure sign-in options
configureSignInDisabledMessageInfo tooltiup message when configure sign in is disabledConfigure sign-in options is enabled only when the authentication requirement is set to “Registered”.
translationOptionsLabel for translation options section in clone modalTranslate to:
cloneMiniGameTitleTitle for clone Either/Or modalClone Either/Or
cloneLabel for clone buttonClone
cloneEitherOrMessageToast successful message when cloning Either/OrYou have successfully cloned Either/Or
cloneEitherOrErrorMessageToast error message when cloning Either/Or failsThere was a problem cloning Either/Or. Please try again
translationErrorMessageToast error message when translation fails during cloningAn error occurred while translating.