hunk.code_window:       ];
         this.state.availableTheme = {
           light: 'light',
           dark: 'dark',
           highContrast: 'highcontrast',
         };
         try {
           this.state.userId = await this.Authentication.getUserDetails().ID;
           const data = await this.UserService.user(this.state.userId);
           this.state.userTheme = data.UserTheme || this.state.defaultTheme;
           this.state.initTheme = this.state.userTheme;
  
hunk.labels: keep keep replace replace replace replace replace replace keep keep keep keep keep
hunk.file_path: app/portainer/components/theme/theme-settings.controller.js
hunk.type: replace
file: package endpoints
  
  import (
  	"net/http"
  
  	httperror "github.com/portainer/libhttp/error"
  	"github.com/portainer/libhttp/request"
  	"github.com/portainer/libhttp/response"
  	portainer "github.com/portainer/portainer/api"
  	"github.com/portainer/portainer/api/bolt/errors"
  	"github.com/portainer/portainer/api/internal/snapshot"
  )
  
  // @id EndpointSnapshot
  // @summary Snapshots an environment(endpoint)
  // @description Snapshots an environment(endpoint)
  // @description **Access policy**: administrator
  // @tags endpoints
  // @security jwt
  // @param id path int true "Environment(Endpoint) identifier"
  // @success 204 "Success"
  // @failure 400 "Invalid request"
  // @failure 404 "Environment(Endpoint) not found"
  // @failure 500 "Server error"
  // @router /endpoints/{id}/snapshot [post]
  func (handler *Handler) endpointSnapshot(w http.ResponseWriter, r *http.Request) *httperror.HandlerError {
  	endpointID, err := request.RetrieveNumericRouteVariableValue(r, "id")
  	if err != nil {
  		return &httperror.HandlerError{http.StatusBadRequest, "Invalid environment identifier route variable", err}
  	}
  
  	endpoint, err := handler.DataStore.Endpoint().Endpoint(portainer.EndpointID(endpointID))
  	if err == errors.ErrObjectNotFound {
  		return &httperror.HandlerError{http.StatusNotFound, "Unable to find an environment with the specified identifier inside the database", err}
  	} else if err != nil {
  		return &httperror.HandlerError{http.StatusInternalServerError, "Unable to find an environment with the specified identifier inside the database", err}
  	}
  
  	if !snapshot.SupportDirectSnapshot(endpoint) {
  		return &httperror.HandlerError{http.StatusBadRequest, "Snapshots not supported for this environment", err}
  	}
  
  	snapshotError := handler.SnapshotService.SnapshotEndpoint(endpoint)
  
  	latestEndpointReference, err := handler.DataStore.Endpoint().Endpoint(endpoint.ID)
  	if latestEndpointReference == nil {
  		return &httperror.HandlerError{http.StatusNotFound, "Unable to find an environment with the specified identifier inside the database", err}
  	}
  
  	latestEndpointReference.Status = portainer.EndpointStatusUp
  	if snapshotError != nil {
  		latestEndpointReference.Status = portainer.EndpointStatusDown
  	}
  
  	latestEndpointReference.Snapshots = endpoint.Snapshots
  	latestEndpointReference.Kubernetes.Snapshots = endpoint.Kubernetes.Snapshots
  
  	err = handler.DataStore.Endpoint().UpdateEndpoint(latestEndpointReference.ID, latestEndpointReference)
  	if err != nil {
  		return &httperror.HandlerError{http.StatusInternalServerError, "Unable to persist environment changes inside the database", err}
  	}
  
  	return response.Empty(w)
  }
  