Don't show free mode banner if an API key has been added (check settings.providers.length) #628
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes #544.
Sorry for sitting on this for a while. There's one concern I have that I wasn't able to figure out.
More details below.
Background
Solution
If you run
![image](https://private-user-images.githubusercontent.com/78163326/327907839-a5ae65ec-01d3-4586-97e3-f7a9d587dd54.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4NTM0NTMsIm5iZiI6MTczOTg1MzE1MywicGF0aCI6Ii83ODE2MzMyNi8zMjc5MDc4MzktYTVhZTY1ZWMtMDFkMy00NTg2LTk3ZTMtZjdhOWQ1ODdkZDU0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDA0MzIzM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgyMDE0NDNmNTBiM2ZjZjU5MWM1ZDI0OTU4YzJkYjQyZmU5YWNhNDgzOTBjZjI3MmJhYjZhMzlmYTlkYzQwYTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.LBGkJHyb_IWntLOacuxOzwF7UcLAzi6DsJ5U06RY_14)
console.log(settings)
you'll see thatsettings
has a property calledproviders
.settings.providers
is empty when no provider API keys are added (length 0):...and is populated when you add an API key:
![image](https://private-user-images.githubusercontent.com/78163326/327907950-8267f7bc-c298-4b79-8456-3d7b28e800ba.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4NTM0NTMsIm5iZiI6MTczOTg1MzE1MywicGF0aCI6Ii83ODE2MzMyNi8zMjc5MDc5NTAtODI2N2Y3YmMtYzI5OC00Yjc5LTg0NTYtM2Q3YjI4ZTgwMGJhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDA0MzIzM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdlNWY5MTZkNWJlOTA4NmRhYmNiMzUyMjU1Y2RhZDc1NzE2ZDg5ZmQ2NGQyYTRlNDkyNWExMTI4MTMyNWQzZTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.hFr-3af7H5DBptq8P3wmbVBh7REh7vfhDU_rMp3au2o)
This PR does the following:
settings.provider
:false
so banner doesn't appear temporarily when user opens ChatCraft after adding a provider/API keyMy concern
The useMemo no longer checks the current provider when showing the Free Mode banner.
![freeBannerIgnoreCurrentProvider](https://private-user-images.githubusercontent.com/78163326/327909176-8ee356be-af79-4622-a913-d7b02a6dacab.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4NTM0NTMsIm5iZiI6MTczOTg1MzE1MywicGF0aCI6Ii83ODE2MzMyNi8zMjc5MDkxNzYtOGVlMzU2YmUtYWY3OS00NjIyLWE5MTMtZDdiMDJhNmRhY2FiLmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDA0MzIzM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdlZjg4NzA2NjZiOWJiMTNhYzk1NmM1ZGI1NTg4NzI3NzczZDM4NTVkY2E2ODllN2EyMmI3ZDNlMzJiYjcxNzImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.VnziMAZWgwumJ611ihRFsuFzzJw6wiFLc5gzW6ayMe4)
This means if a user has a paid provider (like OpenAI) as the current provider and removes their API key, the Free Mode banner will re-appear, but the currentProvider will still be OpenAI:
We can revert back to the original behaviour if that's preferred (don't show Free Mode if Current Provider is a Paid provider):
.
I'd like some opinions on this.