mirror of
				https://github.com/owncast/owncast.git
				synced 2025-11-04 05:17:27 +08:00 
			
		
		
		
	* Add user-customizable theming. Closes #1915 * Prettified Code! * Add user-customizable theming. Closes #1915 * Add explicit color for page content background * Prettified Code! Co-authored-by: gabek <gabek@users.noreply.github.com>
		
			
				
	
	
		
			28 lines
		
	
	
		
			782 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			782 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
/* eslint-disable react/no-danger */
 | 
						|
import { FC } from 'react';
 | 
						|
import { useRecoilValue } from 'recoil';
 | 
						|
import { ClientConfig } from '../../interfaces/client-config.model';
 | 
						|
import { clientConfigStateAtom } from '../stores/ClientConfigStore';
 | 
						|
 | 
						|
export const Theme: FC = () => {
 | 
						|
  const clientConfig = useRecoilValue<ClientConfig>(clientConfigStateAtom);
 | 
						|
  const { appearanceVariables, customStyles } = clientConfig;
 | 
						|
 | 
						|
  const appearanceVars = Object.keys(appearanceVariables)
 | 
						|
    .filter(variable => !!appearanceVariables[variable])
 | 
						|
    .map(variable => `--${variable}: ${appearanceVariables[variable]}`);
 | 
						|
 | 
						|
  return (
 | 
						|
    <style
 | 
						|
      dangerouslySetInnerHTML={{
 | 
						|
        __html: `
 | 
						|
				:root {
 | 
						|
					${appearanceVars.join(';\n')}
 | 
						|
				}
 | 
						|
				${customStyles}
 | 
						|
			`,
 | 
						|
      }}
 | 
						|
    />
 | 
						|
  );
 | 
						|
};
 |