Observe not working in color mapping

...I want to color map my polygons based on the user input. The column i am using has categorial variables so I am using the colorFactor function which I have tested it is functioning normally. Nothing changes on the map. How do i include reactivity such that the polygon color changes based on the user input? Code:

#INTERACTIVE MAPPING
  #colorfunction
  pal<-colorFactor(rainbow(7),mp$AreaTyp)
  
  #set data based on user input
  fdata<-reactive({
    data<-mp
    if(input$area!="All"){
      data<-data[data$AreaType==input$area,]
    }
    data
  })
  
  
  
  output$leaf<-renderLeaflet({
    
    leaflet(fdata()) %>%
      
      #Initializing the map
      setView(lng=36.092245, lat=-00.292115,zoom=15)%>%
      
      #Base map
      #Add default OpenStreetMap map tiles
      addTiles(group = "default")%>%
      #addProviderTiles("Esri.NatGeoWorldMap",group = "default")%>%  
      #addProviderTiles("CartoDB.Positron",group = "custom")%>%
      
      #Overlay map
      addPolygons(
        data = fdata(),
        fillColor = "blue",
        weight = 1, smoothFactor = 0.5,
        opacity = 1.0, fillOpacity = 1.0,
        group = "basepoly",
        highlightOptions = highlightOptions(
          weight = 2,
          color = "red",
          fillOpacity = 0.7,
          bringToFront = TRUE
        ),label =~LIA
        
                                   
      )
    
    
  })
  
  
  observe({
    
    leafletProxy("leaf",data = fdata()) %>%
     
     
      clearShapes() %>%
      addPolygons(
        weight = 1, smoothFactor = 0.5,
        opacity = 1.0, fillOpacity = 1.0,
        data=fdata(),
        fillColor = ~pal(AreaTyp),
        label =~LIA
       
      )
   
    
    
  })